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.