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.

questionAnswers(2)

yourAnswerToTheQuestion