gpt4 book ai didi

grails - 如何使用Grails ORM检索具有max,offset和sort参数的列表

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

我有一个带有UserGroup域对象的grails应用程序。 User具有许多Group对象,而Group对象包含许多User对象:

class User implements Serializable {

static constraints = {
usergroups nullable: true
}

static mapping = {
usergroups cascade: 'all-delete-orphan'
}

static hasMany = [
usergroups: Group
]

static mappedBy = [
usergroups : "creator"
]
}

class Group {

static belongsTo = [
creator : User
]

static hasMany = [
members : User
]

static constraints = {
creator nullable: false
members nullable: true, maxSize: 100
}
}

给定一个 Group对象,我可以使用 maxoffsetsortBy参数检索成员吗?就像是...
def members = User.where {
/* how to specify only the users in 'group.members'? */
}.list(
max: max,
offset: offset,
sortBy : sortBy
);

编辑

为了尝试解决该问题,我已将 User类更改为包含 joinedgroups字段...
class User implements Serializable {

static constraints = {
usergroups nullable: true
joinedgroups nullable: true
}

static mapping = {
usergroups cascade: 'all-delete-orphan'
}

static hasMany = [
usergroups: Group
joinedgroups: Group
]

static mappedBy = [
usergroups : "creator",
joinedgroups : "creator" // if I don't add this Grails complains there is no owner defined between domain classes User and Group.
]
}

但是现在当我尝试检索应用程序另一部分中所有用户的 usergroup对象时,仅返回一个用户组...
    def groups = Group.where {
creator.id == user.id
}.list(max: max, offset: offset, sort: sortBy); // should return 3 groups but now only returns 1

此查询之前有效,因此在 mappedby中添加额外的 User条目可能导致了此问题。 mappedby中的新 User字段不正确吗?

最佳答案

如果包含用户的所有组都保存在usergroups字段中,则可以使用:

def query = User.where {
usergroups { id == myGroup.id }
}

def users = query.list(max: 10, offset: 0, sort : "id")

关于grails - 如何使用Grails ORM检索具有max,offset和sort参数的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32310236/

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