我正在尝试为查询找到正确的语法,我知道该查询非常常见,但无法找到代码示例。
class ObjA {
...
static hasMany = [b:ObjB]
}
如果 a 是ObjA的一个实例,我想执行如下查询:
a.b.findAllBsSuchThat(b.someproperty = somevalue)
答案 0 :(得分:1)
为了避免(N + 1)查询每个a
的延迟关联,您可以使用以下标准:
ObjA.withCriteria {
b {
eq 'someProperty', someValue
}
}
或where
查询:
ObjA.where { b.someProperty == somevalue }.list()
如果您使用a.b.findAllBsSuchThat(b.someproperty = somevalue)
之类的内容,那么您将获得b's
的所有a
,然后对结果进行过滤。这会影响性能并且不必要。