gpt4 book ai didi

hibernate - Grails createCriteria按hasMany上的条件排序

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

我尝试通过hasMany的特定条目来订购我的createCriteria查询。我的域名如下:

class Asset {

String name
static hasMany = [
supporters: SupportRole
]
}

class SupportRole {
Asset asset
Person person
String role
}

class Person {
String name
}

我想做的是按Person类(其中role ='Primary')对 Assets 查询进行排序。您如何根据条件加入?我提出以下查询,但无法正常工作:
assets = Asset.createCriteria.list() {
supporters {
like('role', 'Primary')
person {
order('name', sortOrder)
}
}
}

但是此查询无法识别联接表的“角色”属性,只是消除了没有“主要” SupportRole的 Assets 。我需要它能够处理空值(例如,给定 Assets 没有“主要” SupportRole)。

太感谢了!

最佳答案

可以将标准轻松转换为HQL,如下所示,其中不必处理预测和别名。

def assets = Asset.executeQuery("select a from Asset as a \
inner join a.supporters as s \
inner join s.person as p \
where s.role = 'Primary' \
order by p.name = :sortOrder",
[sortOrder: 'desc'])

关于hibernate - Grails createCriteria按hasMany上的条件排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18026787/

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