5

在我的 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
}

有任何想法吗?

4

1 回答 1

9

解决了。

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

或者

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

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

于 2012-05-17T18:34:08.493 回答