HQL: Extraction de Rejoindre les Collections d'Désireux de Table

J'ai quatre tables:

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

et une entité semblable structure:

RootNode -> SubNode -> SubNodeChildren1
                    -> SubNodeChildren2

J'ai besoin d'une requête qui renvoie tous les RootNodes dans le tableau avec ses SubNode et SubNode enfants initialisé. Le SubNode est avec impatience par les cheveux, mais le SubNode enfants est paresseux par les cheveux.

Je sais comment écrire une requête qui va LEFT OUTER JOIN FETCH les enfants immédiats d'un tableau et de les initialiser en conséquence. Cependant, je n'ai aucune idée de la façon de prendre les enfants d'une table qui est très récupérée à partir de haut-niveau de la table.

J'ai essayé quelque chose comme:

SELECT rn FROM RootNode AS rn LEFT OUTER JOIN FETCH rn.SubNode.SubNodeChildren1

mais, cela me donne toujours une erreur que le propriétaire n'est pas partie de la sélection.

Toute aide est grandement appréciée.