gpt4 book ai didi

hibernate - GORM createCriteria或带有别名的语句

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

我正在将一个名为statuses的ID列表从 View 传递到 Controller 。在 Controller 中,我只是在执行:

def statusSelection = params.list('statuses')

我正在使用 createCriteria来获取域类记录的列表:
MyDC.createCriteria().list(
max: params.max,
offset: params.offset,
order: params.order,
sort: querySort) {
statuses { // hasMany statuses: Status
or {
statusSelection.each { // loop through params list
idEq(it.id)
}
}
}
}

在要求查看的表中的表允许对 status属性进行排序之前,这一直很好。现在,我得到一个带有以下消息的 org.hibernate.QueryException:

duplicate association path: statuses



这是由于我确定的 querySort值,但我不知道如何为排序加上别名并维护 or语句。

最佳答案

如果在错误时引发querySort ==“statuses”,则可以创建别名来替换该querySort。您应该更改gsp以返回statusSort而不是statuss

MyDC.createCriteria().list(
max: params.max,
offset: params.offset,
order: params.order,
sort: querySort) {
createAlias('statuses', 'statusSort') //This alias will replace the querySort
statuses { // hasMany statuses: Status
or {
statusSelection.each { // loop through params list
idEq(it.id)
}
}
}
}

您可以在这里阅读非常有趣的讨论: Sorting on database server or application server in n-tier architecture

关于hibernate - GORM createCriteria或带有别名的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201326/

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