说,我有两个域类:
class Foo {
Bar bar
Long baz
}
class Bar {
String name
}
我接到一个电话createCriteria
,想要按 Bar 的名称(或客户想要排序的任何其他有效属性)进行排序,忽略大小写。我已经能够将其减少到:
Foo.createCriteria().list() {
//...
bar {
order((params.sortOrder == 'asc' ?
Order.asc('name') : // 'name' is a variable in the real code
Order.desc('name')
).ignoreCase())
}
}
但是当 sort 属性嵌套时(即 的属性bar
),我得到一个异常:
org.hibernate.QueryException: could not resolve property: name of: Foo
我发现了这些相关的 Grails 错误GRAILS-8182、GRAILS-9171、GRAILS-3911,这使得似乎有一些错误组合使我想做的事情变得不可能。
有没有办法对嵌套属性进行不区分大小写的排序createCriteria
?我意识到我可以在客户端或 Groovy 列表上进行排序,但我真的不希望重新发明轮子(特别是因为它会是一个非常丑陋的轮子)。
我正在使用 Grails 2.2.4。