0

我有以下域关系:

A hasMany = [bs: B]
B belongsTo = [a:A, c:C]
C hasMany = [bs: B]

当我在 a Thread.start {}all 中执行以下查询时(我可以在以集合作为参数调用的方法中访问整个集合):

def aList = A.withCriteria {
    fetchMode('bs', FetchMode.JOIN)
    fetchMode('bs.c', FetchMode.JOIN)
    isNotNull('property')
}

但是,如果我像这样过滤bs集合:

def aList = A.withCriteria {
    fetchMode('bs', FetchMode.JOIN)
    fetchMode('bs.c', FetchMode.JOIN)
    isNotNull('property')
    bs {
        eq('property', C.get(1))
    }
}

failed to lazily initialize a collection of role: A.bs, no session or session was closed在尝试访问时得到aList.bs. 难道我做错了什么?在这两种情况下都会生成相同的 SQL...

4

0 回答 0