我在 Grails 中有一个域,它是 Case
,另一个域是 Payment
。
我想获得 Case
,所有在支付列表中的 Payment
s(包含在 hasMany
关系中),都具有相同的 collectorNick
。
例子:
payment1 (collectorNick:a)
payment2 (collectorNick:a)
payment3 (collectorNick:b)
Case1(payments[payment1,payment2]
Case2(payments[payment1,payment3]
当搜索
collectorNick:a
时,结果将是 Case1,因为支付 collectorNick
是 a,Case2 有 payment3,payment3 的收集者是 b
。我试图实现这一点,但是当我创建的
createCriteria
我同时获得 Case1 和 Case2我知道这可以通过不同的方式完成,但我需要使用
createCriteria
中的 Case
,因为我稍后需要从案例的其他一些字段中进行过滤。Case
有List<Payment> payments
static hasMany = [ payments: Payment ]
和
Payment
有String collectorNick
我使用的
createCriteria
是: def cases = Case.createCriteria().list(max: limit, offset: offset){
and{
payments {
eq('collectorNick', params.collector)
}
}
}
最佳答案
如果我正确理解您要做什么(仅查找 Case
实例,其中 所有 付款均由给定收集器收集),那么如何:
def cases = Case.createCriteria().list(max: limit, offset: offset){
not {
payments {
ne('collectorNick', params.collector)
}
}
}
关于grails - hasMany 关系中的 CreateCriteria Grails,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27476289/