grails - Grails按属性搜索拥有的对象

标签 grails

我正在尝试为我所知道的查询找到正确的语法,但是该查询找不到代码示例。

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

如果是ObjA的实例,我想执行如下查询:
a.b.findAllBsSuchThat(b.someproperty = somevalue)

最佳答案

为了避免对每个a进行(N + 1)个惰性关联查询,您可以使用以下条件:

ObjA.withCriteria {
    b {
        eq 'someProperty', someValue
    }
}

where查询:
ObjA.where { b.someProperty == somevalue }.list()

如果您使用a.b.findAllBsSuchThat(b.someproperty = somevalue)之类的东西,那么您将获得b's的所有a,然后对结果进行过滤。这将影响性能,并且不必要。

关于grails - Grails按属性搜索拥有的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27003549/

相关文章:

hibernate - Grails -- 非法尝试取消引用 Hql 中的集合错误

java - 在单个 micronaut 项目中运行多个微服务的配置

hibernate - Grails的hasOne和hasMany具有相同的域和级联操作

hibernate 异常 : No session currently bound to execution context

javascript - 如何通过定时调用remoteFunction从controller获取数据?

java - UnitTest (groovy + grails) - 无法拆卸元类

rest - 将文件发布到grails应用程序时正确获取换行符

grails - 如何在 Grails 中取消过滤?

grails - grails-plugin项目中的save()域

grails - 如何将Grails的 “daemon port”从8091更改为其他内容?