gpt4 book ai didi

grails - 嵌套属性的大小写不区分顺序

转载 作者:行者123 更新时间:2023-12-02 14:51:24 26 4
gpt4 key购买 nike

说,我有两个域类:

class Foo {
Bar bar

Long baz
}

class Bar {
String name
}

我有一个 call 进入 createCriteria,该 call 想按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-8182GRAILS-9171GRAILS-3911使得似乎有很多错误组合使我无法做。

有没有一种方法可以对 createCriteria中的嵌套属性进行不区分大小写的排序?我意识到我可以在客户端或Groovy列表上进行排序,但我确实希望不必重新发明轮子(特别是因为它确实很丑陋)。

我正在使用Grails 2.2.4。

最佳答案

在尝试解决与grails排序相关的类似问题时,我偶然发现了这个问题。也许与此同时,已经找到了解决方案。如果没有,我建议您尝试以下操作:

Foo.createCriteria().list() {
createAlias("bar","_b")
order("_b.name", (params.sortOrder == "asc")?"asc":"desc")
}

这样,您应该能够通过 Foo来订购 bar.name的实例

关于grails - 嵌套属性的大小写不区分顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27069358/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com