HQL: Join-Sammlungen aus eifriger Tabelle holen

Ich habe vier Tische:

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

und eine ähnliche Entitätsstruktur:

RootNode -> SubNode -> SubNodeChildren1
                    -> SubNodeChildren2

Ich brauche eine Abfrage, die alle @ zurückgiRootNodes in der Tabelle mit seinemSubNode undSubNode Kinder initialisiert. DasSubNode wird eifrig geholt, aber dasSubNode Kinder ist faul geholt.

Ich weiß, wie man eine Abfrage schreibt, dieLEFT OUTER JOIN FETCH die unmittelbaren Kinder einer Tabelle und initialisieren sie entsprechend. Ich habe jedoch keine Ahnung, wie ich die Kinder eines Tisches packen soll, der eifrig vom Tisch der obersten Ebene geholt wird.

Ich habe etwas ausprobiert wie:

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

Aber das gibt mir immer einen Fehler, dass der Besitzer nicht Teil der SELECT ist.

Jede Hilfe wird sehr geschätzt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage