我有以下域关系:
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...