Kai*_*ugo 3 grails hibernate hibernate-criteria grails-domain-class
我有这个Grails的2.0.3项目,其中有两个型号DomainA和DomainB无一不是由相互关联的many-to-many关系,其中DomainB的一个孩子DomainA.
class DomainA {
// properties
static hasMany = [domains: DomainB]
}
class DomainB {
// properties
static hasMany = [domains: DomainA]
static belongsTo = [DomainA]
}
Run Code Online (Sandbox Code Playgroud)
鉴于这种设计,我想查询所有DomainB其中存在DomainA以下查询集的实例DomainA.
def domainsList = DomainA.createCriteria().list() {
// other criterions for the other properties
}
DomainB.createCriteria().list() {
inList("domains", domainsList)
// other criterions for the other properties
}
Run Code Online (Sandbox Code Playgroud)
执行上面的代码时,会出现错误提示,ERROR util.JDBCExceptionReporter - Parameter #1 has not been set.其中Parameter #1提示标准中的domains属性名称inList.
遇到这个问题,这有可能解决吗?怎么样?
看看GORM指南,查找"查询关联".我们宁愿尝试使用单个查询来完成所有操作.
有了新的"where"查询,它就是
def query = DomainB.where {
domains { someAField == 3 } && someBField == 8
}
Run Code Online (Sandbox Code Playgroud)
或者CriteriaBuilder:
DomainB.withCriteria {
domains {
eq 'someAField', 3
}
eq 'someBField', 8
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8055 次 |
| 最近记录: |