HQL: Buscar coleções de junção da tabela ansiosa
Eu tenho quatro mesas:
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
e uma estrutura de entidade semelhante:
RootNode -> SubNode -> SubNodeChildren1
-> SubNodeChildren2
Eu preciso de uma consulta que retorne todas asRootNodes
na mesa com suaSubNode
eSubNode
crianças inicializadas. oSubNode
é buscado ansiosamente, mas oSubNode
crianças é preguiçoso buscado.
Eu sei como escrever uma consulta que iráLEFT OUTER JOIN FETCH
os filhos imediatos de uma tabela e inicialize-os de acordo. No entanto, não tenho idéia de como agarrar os filhos de uma mesa que é buscada ansiosamente da mesa de nível superior.
Eu tentei algo como:
SELECT rn FROM RootNode AS rn LEFT OUTER JOIN FETCH rn.SubNode.SubNodeChildren1
mas isso sempre me dá um erro de que o proprietário não faz parte do SELECT.
Qualquer ajuda é muito apreciada.