我有以下域名关系:
A hasMany = [bs: B]
B belongsTo = [a:A, c:C]
C hasMany = [bs: B]
当我在Thread.start {}
内进行以下查询时,一切都很好(我可以在以集合作为参数调用的方法中访问整个集合):
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 ...