标题本身就是问题。我有这个Grails Domain类。
class IonicBond {
...
static hasMany = [
typeIIs: TypeII,
typeRs: TypeR,
]
static constraints = {
typeIIs nullable: true
typeRs nullable: true
}
}
我需要根据
IonicBond
属性查询hasMany
实例。像这样:ArrayList<IonicBond> list = IonicBond.createCriteria().list {
or {
typeIIs {
eq("classCode", "WD996")
}
typeRs {
eq("classCode", "WD996")
}
}
}
我需要对此语句做一些查询:“获取所有
IonicBond
,其中TypeII
子级或TypeR
子级classCode
之一等于'WD996'”。问题在于该查询仅在IonicBond
实例同时具有TypeII
和TypeR
子级的情况下才有效。它不包括:IonicBond
,其TypeR
子级的class
值为“WD996”,但没有TypeII
子级。 IonicBond
,其TypeII
子级的class
值为“WD996”,但没有TypeR
子级。 如何将其包括在结果集中?
最佳答案
试试这个解决方案:
ArrayList<IonicBond> list = IonicBond.where { typeRs { classCode == "WD996" } || typeIIs { classCode == "WD996" } }.list()