Grails按属性搜索拥有的对象
我试图为一个查询找到合适的语法,我知道这个查询非常常见,但找不到一个代码示例Grails按属性搜索拥有的对象,grails,Grails,我试图为一个查询找到合适的语法,我知道这个查询非常常见,但找不到一个代码示例 class ObjA { ... static hasMany = [b:ObjB] } 如果a是ObjA的一个实例,我想执行如下查询: a.b.findAllBsSuchThat(b.someproperty = somevalue) 为了避免根据a对惰性关联进行(N+1)查询,您可以使用以下条件: ObjA.withCriteria { b { eq 'someProperty', so
class ObjA {
...
static hasMany = [b:ObjB]
}
如果a是ObjA的一个实例,我想执行如下查询:
a.b.findAllBsSuchThat(b.someproperty = somevalue)
为了避免根据a
对惰性关联进行(N+1)查询,您可以使用以下条件:
ObjA.withCriteria {
b {
eq 'someProperty', someValue
}
}
或其中
查询:
ObjA.where { b.someProperty == somevalue }.list()
如果您使用类似于
a.b.findAllBsSuchThat(b.someproperty=somevalue)
的东西,那么您将获得a
的所有b
,然后对结果进行过滤。这将影响性能,而且是不必要的。如果测试的属性是字符串,语法是否会略有不同。这是我试图执行的真正测试if(entRec.where{flags.color.equalsIgnoreCase('red').list()}!=[])
我想知道entRec
是否有标志属性颜色为红色if(entRec.where{flags.color='red'}.count())应该做的=
运算符在Groovy中被重写,如果不匹配,count()
将导致0,并且最终Groovy Truth将在
条件下失败。谢谢,但请确认,这不是不区分大小写的正确吗?正确。这是区分大小写的。知道了。再次感谢。