Grails按属性搜索拥有的对象

时间:2014-11-18 20:36:51

标签: grails

我正在尝试为查询找到正确的语法,我知道该查询非常常见,但无法找到代码示例。

class ObjA {
...
static hasMany = [b:ObjB]
}

如果 a 是ObjA的一个实例,我想执行如下查询:

a.b.findAllBsSuchThat(b.someproperty = somevalue)

1 个答案:

答案 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,然后对结果进行过滤。这会影响性能并且不必要。