Fetch JPA und Hibernate ignorieren Verbände?
Frage
Ich habe JPA-Entität (Objekt A) mit einem One-Viele besitzen Beziehung (Objekt B) in einer Arraylist.
Ich möchte in der Lage sein Objekt A abzufragen (entweder Hibernate oder JPA) für ohne eine der Instanzen Vereinigungs Objekt B mit zurückgegeben (keine Proxies oder auf andere Weise) in der One-Many Arraylist.
Im Idealfall die zurückgegebene Arraylist würde null oder leer sein.
Ist das möglich? In rauem Pseudo-Code ist es das, was ich will:
"von ObjectA wo ObjectA.id = 5 NICHT ENTHALTEN ObjectB"
oder
"a Wählen Sie aus ObjectA ein FETCH a.ObjectBs IGNORE wo a.id = 5"
Lösung
Wenn der Verband für ObjectBs in ObjectA faul ist, wird ObjectBs nicht mit Ihrer Abfrage zurückgegeben werden, es sei denn, Ihre Abfrage sie zu holen gibt.
Wenn Sie ObjectBs zugreifen waren einmal die Sitzung geschlossen ist, würden Sie eine LazyInitializationException bekommen, weil Ihr ObjectBs nicht in den Speicher geladen wurden.