拥有以下域模式:
class TransactionHeader {
static hasMany = [details: TransactionDetail]
}
class TransactionDetail {
static belongsTo = [header: TransactionHeader]
Product product
}
我正在尝试编写一个条件查询,该查询将返回包含两个不同产品的TransactionDetails的所有TransactionHeader行。这就是我到目前为止所做的事情并没有完全符合我的目标:
def list = TransactionHeader.withCriteria {
details {
and {
eq("product", product1)
eq("product", product2)
}
}
}
正在发生的是返回行包含至少1个产品的详细信息。我需要有2个细节的行,每个细节都有一个产品。
答案 0 :(得分:2)
感觉你想要移出细节,所以实际上
def list = TransactionHeader.withCriteria {
and {
details {
eq("product", product1)
}
details {
eq("product", product2)
}
}
}
不知道hibernate / gorm如何处理这个问题。
答案 1 :(得分:-1)
您是否尝试在条件dsl中使用“in”语句?
def list = TransactionHeader.withCriteria {
and {
details {
'in'("product", [product1, product2])
}
}
}