【发布时间】:2011-03-31 19:41:00
【问题描述】:
我有四张桌子:
RootNode // Will return multiple root nodes
SubNode // Will return one sub node per root node
SubNodeChildren1 // Will return multiple for each sub node
SubNodeChildren2 // Will return multiple for each sub node
和类似的实体结构:
RootNode -> SubNode -> SubNodeChildren1
-> SubNodeChildren2
我需要一个查询来返回表中的所有RootNodes,并初始化其SubNode 和SubNode 子级。 SubNode 被急切地获取,但 SubNode 子级被懒惰地获取。
我知道如何编写一个查询,它将LEFT OUTER JOIN FETCH 表的直接子级并相应地初始化它们。但是,我不知道如何获取从顶级表中急切获取的表的子项。
我尝试过类似的方法:
SELECT rn FROM RootNode AS rn LEFT OUTER JOIN FETCH rn.SubNode.SubNodeChildren1
但是,这总是给我一个错误,即所有者不是 SELECT 的一部分。
非常感谢任何帮助。
【问题讨论】: