gpt4 book ai didi

grails - Grails:对关系中的集合进行分页和排序

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

我想对关系中的集合进行分页和排序

例如,使用以下模型:

class User {
String userName, password
static hasMany = [roles: UserRole, preferences: Preference]
}

class UserRole {
String name, description

static hasMany = [actions: Action]
}

我想恢复特定用户的所有角色。我已经加载了用户,所以正常的方式是使用
user.roles

但我想按 UserRole属性对其进行排序,并希望对其进行动态分页

我知道,如果我想对所有 UserRole进行排序和分页,可以使用:
UserRole.list([sort: 'name', order: 'asc',max: 5,offset:0])

但是我只想为与用户关联的角色执行此操作。我试图使用条件,但我想我缺少了一些东西。

我也在这里看了一下:
http://grails.1312388.n4.nabble.com/A-Relationship-Paging-Pattern-td1326643.html

但是然后我将不得不将该关系重新添加到 UserRole中,所以我将拥有:
static hasMany = [users : UserRole]

我怎样才能做到这一点?最好的方法是什么?

请让我知道是否需要更多信息,如果我不清楚的话请抱歉

感谢致敬

最佳答案

您无法分页“普通”关系。

您可以使用mapping DSL更改子对象出现的顺序:

static mapping = {
sort name:desc
}

为了简化手工制作的分页关系,可以使用命名查询:
class Role {
static namedQueries = {
userRoles {
eq('user', UserSessionService.instance.currentUser)
}
}
}

或者,您可以实现一个瞬时 User的属性,该属性将为 CriteriaUser(可以分页)返回 Role

关于grails - Grails:对关系中的集合进行分页和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6810201/

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