Ich habe vier Tabellen:HQL: Fetch Registriert Kollektionen von Eager Tabelle
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 Einheit Struktur:
RootNode -> SubNode -> SubNodeChildren1
-> SubNodeChildren2
Ich brauche eine Abfrage, die mit all den RootNodes
in der Tabelle zurück seine SubNode
und SubNode
Kinder initialisiert. Die SubNode
wird eifrig geholt, aber die SubNode
Kinder werden faul geholt.
Ich weiß, wie man eine Abfrage schreibt, die LEFT OUTER JOIN FETCH
die unmittelbaren Kinder einer Tabelle und sie entsprechend initialisieren wird. Ich habe jedoch keine Ahnung, wie man die Kinder eines Tisches ergreift, der eifrig vom obersten Tisch geholt wird.
Ich habe versucht, so etwas wie:
SELECT rn FROM RootNode AS rn LEFT OUTER JOIN FETCH rn.SubNode.SubNodeChildren1
aber das gibt mir immer einen Fehler, dass der Eigentümer nicht Teil der SELECT ist.
Jede Hilfe wird sehr geschätzt.
+1 Ich frage mich, warum [verschachtelte Join-Fetches] (http://en.wikibooks.org/wiki/Java_Persistence/Relationships#Nested_Joins) in JPA nicht erlaubt sind. –