假设我有一个User
个课程,其中包含许多Customers
(标有hasMany
属性)。
在课程Customer
中,我使用belongsTo
标记了所有者。
现在,当我想获得用户的客户时,我只需写User.read(params.id).customers
我想在我的测试项目中加入一个分页,所以阅读整个客户列表并没有多大意义..我会使用类似Customer.findAllByOwner
的东西,但这种方法不存在这样的方法..
如何限制此类查询的结果集(偏移和限制)?
package myapp
class User {
...
static hasMany = [customers: Customer]
...
}
package myapp
class Customer {
...
static belongsTo = User
...
}
答案 0 :(得分:3)
如果我错了,请纠正我,但这里最简单的形式是你想要根据User对象得到一个Customers列表。
在这种情况下,请将您的客户域类更改为......
class Customer {
...
static belongsTo = [user: User]
...
}
然后,在您的控制器中,您可以执行以下操作:
def customerInstanceList = Customer.findAllByUser(User.get(params.id), [max: params.max, offset: params.offset])
希望这有帮助。
答案 1 :(得分:2)
您尝试访问的客户中的媒体资源名称为“用户”而非“所有者”。如果您希望属性名称为所有者,则应为:
static belongsTo = [owner : User]
您可以通过提供包含分页参数的地图作为最终参数来对动态查找程序的结果集进行分页。
def customers = Customer.findAllByOwner(user, [max:params.max,
offset:params.offset)