Есть ли способ заказать по подстроке ID, приведенной к целому числу, используя HQL или / и критерии?
Например:
class Foo {
String id
String name
}
Сортированный набор данных будет выглядеть так:
90-1 David
90-4 Mike
101-1 Jack
101-2 Peter
105-1 Jon
105-7 Jane
С базой данных MySQL и собственным sql это будет сделано так:
order by
CAST(substring_index(id, '-', 1) AS UNSIGNED),
CAST(substring(id, length(substring_index(id, '-', 1)) + 2) AS UNSIGNED)
Я попытался использовать формулу, как было предложено, но это не сработало, потому что UNSIGNED рассматривался как псевдоним, а сгенерированный SQL имел _this.UNSIGNED
Integer fooFirstID
Integer fooSecondID
static mapping = {
fooFirstID formula: "CAST(substring_index(id, '-', 1) AS UNSIGNED)"
fooSecondID formula: "CAST(substring(id, length(substring_index(id, '-', 1))
+ 2) AS UNSIGNED)"
}
Я вижу, что Hibernate поддерживает как подстроку, так и приведение к типу Hibernate, но не может найти эквивалент substring_index.
Спасибо.