Сайте, у меня есть два класса домена:без учета регистр порядок на вложенных свойствах
class Foo {
Bar bar
Long baz
}
class Bar {
String name
}
И у меня есть вызов, попадающая в createCriteria
, который хочет, чтобы сортировать по имени Бара (или любому другому действительному свойство, что клиент хочет сортировать), игнорируя случай. Я был в состоянии уменьшить его:
Foo.createCriteria().list() {
//...
bar {
order((params.sortOrder == 'asc' ?
Order.asc('name') : // 'name' is a variable in the real code
Order.desc('name')
).ignoreCase())
}
}
но когда свойство сортировки вложенными (т.е. свойство bar
), я получаю исключение:
org.hibernate.QueryException: could not resolve property: name of: Foo
Я нашел эти родственные Ошибки Grails GRAILS-8182, GRAILS-9171, GRAILS-3911, которые заставляют казаться, что есть комбинация ошибок, которые делают то, что я хочу сделать, это невозможно.
Есть ли способ делать нечувствительную к регистру сортировку по вложенным свойствам в createCriteria
? Я понимаю, что могу сортироваться как на клиенте, так и в списке Groovy, но я бы предпочел не изобретать колесо (тем более, что это было бы очень уродливое колесо).
Я использую Grails 2.2.4.