hibernate - Grails 条件查询与 fetchMode 急切,具有两个级别

标签 hibernate grails criteria eager

在我的 Grails 项目中,我有以下类:

class A {
    static hasMany = [cs:C]
}

class B {
    static hasMany = [cs:C]
}

class C {
    static belongsTo = [a:A, b:B]
}

我想查询A类并急切地将B和C的所有关联带入。
我尝试了以下标准查询,但是当我从 A 迭代 Cs 时,hibernate 使用延迟初始化来查询 B 对象。
A.withCriteria() {
    fetchmode "cs", FetchMode.JOIN
    fetchMode "cs.b", FetchMode.JOIN
}

有任何想法吗?

最佳答案

解决了。

A.withCriteria() {
    cs{
        fetchMode "cs.b", FetchMode.JOIN
    }
}

或者
A.withCriteria() {
    cs{
        b{
        }
    }
}

在这两种情况下,Hibernate 都使用两个查询。比我以前的 98 好多了;-)

关于hibernate - Grails 条件查询与 fetchMode 急切,具有两个级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10626599/

相关文章:

java - 如何按照提供的ID顺序从列表中的条件查询中获取对象

grails - 如何从Grails脚手架 View 中隐藏密码字段?

java - hibernate :标准。向标准对象添加别名

grails - 如何使Grails子查询作为简单示例?

带有元组表达式的子句中的 JPA 条件

java - hibernate 中打开的 session 是否一定意味着我已连接到数据库?

java - 单个表的两个版本的 JPA 实体

带有tomcat的Spring jpa(Hibernate)

java - 无法识别 Hibernate 符号 @id @column

grails - 是否可以从生产环境中排除 grails 插件?