gpt4 book ai didi

grails - 如何在Grails中限制类的关系元素?

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

我有

class User {
String name

hasMany = [books: Book]
}


class Book (
String name
belongsTo = [user: User]
}

现在,我可以按以下方式访问用户实例的所有书籍:
def user = User.find("someId")
println user.books

如何限制书的数量,以便仅从user.books获得前x本书?
还有一种对它们进行排序的方法吗?

最佳答案

一种可行的方法是将books定义为List内的User。您将需要有一个索引列,但是您可以获得分页和排序的好处,例如:

class User{
List books
static hasMany = [books: Book]
}

def user = User.find("someId")
println user.books?.getAt(3..10).sort{it.name}

注意:-
用户的所有图书都会被懒洋洋地获取,使用上述方法会从索引3到10过滤图书。

如果您要优化延迟获取策略(N + 1),则可能需要查看 batchSizeorder。也可以将 sort作为旁注。

例:
class User {
String name
static hasMany = [books: Book]
static mapping = {
books batchSize: 10
}
}

class Book (
String name
static belongsTo = [user: User]
static mapping = {
order "desc"
}
}

关于grails - 如何在Grails中限制类的关系元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17308072/

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