gpt4 book ai didi

grails - 在createcritera.list中排序空值

转载 作者:行者123 更新时间:2023-12-02 15:00:21 25 4
gpt4 key购买 nike

对使用createCriteria创建的列表进行排序时出现问题。
问题是,当我根据某个属性对其值进行排序时,其值为null,那么整个对象将从列表中排除。
(sort参数通过sorttable列传递)

这是我的代码示例。

SomeClass.createCriteria().list {
eq('sth', sth)
if (sort == 'someValue') {
nestedClass1 {
nestedClass2 {
nestedClass3 {
order('name', sortOrder)
} } }
}}

问题是,例如,当nestedCalss1为null时,整个对象将从列表中删除

最佳答案

像这样的关联查询默认情况下是内部联接,要包含空值,您需要使用左外部联接,可以使用createAlias

import org.hibernate.criterion.CriteriaSpecification

SomeClass.createCriteria().list {
eq('sth', sth)
if (sort == 'someValue') {
createAlias("nestedClass1", "nc1", CriteriaSpecification.LEFT_JOIN)
createAlias("nc1.nestedClass2", "nc2", CriteriaSpecification.LEFT_JOIN)
createAlias("nc2.nestedClass3", "nc3", CriteriaSpecification.LEFT_JOIN)
order("nc3.name", sortOrder)
}
}

关于grails - 在createcritera.list中排序空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28675286/

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