在hasMany关系中CreateCriteria Grails

时间:2014-12-15 01:44:00

标签: grails gorm

Grails中的域名为Case,其他域名为Payment

我希望获得付款清单中所有CasePayment关系中包含的所有hasMany)的collectorNick具有相同的payment1 (collectorNick:a) payment2 (collectorNick:a) payment3 (collectorNick:b) Case1(payments[payment1,payment2] Case2(payments[payment1,payment3]

示例:

collectorNick:a

搜索collectorNick时,结果将为Case1,因为付款b为a且Case2为payment3且payment3的收集者为createCriteria

我试图实现这一点,但是当我创建的createCriteria我同时获得Case1和Case2时

我知道可以通过不同的方式完成,但我需要使用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) } } } 是:

{{1}}

1 个答案:

答案 0 :(得分:4)

如果我正确理解您要执行的操作(仅查找Case个实例,其中所有付款由特定收集者收集),请执行以下操作:

def cases = Case.createCriteria().list(max: limit, offset: offset){
    not {
        payments {
                ne('collectorNick', params.collector)
        }
    }
}