16 Stimmen

Hibernate/JPA: Erzwingen impliziter Joins zur Verwendung von LEFT OUTER JOINS

Es gibt eine Klasse Offer Das hat optional Beziehung zur Klasse Article . So dass einige Angebote Artikel Eigenschaft hält eine null Wert.

Wenn ich die folgende Anweisung verwende, funktioniert alles einwandfrei. Ich bekomme alle Angebote, auch die, die keinen Artikel haben.

SELECT o FROM Offer o 
         LEFT OUTER JOIN o.article a 
         LEFT OUTER JOIN o.vendor v 
         WHERE v.number = '0212' OR a.nummer = '123456'

Wenn ich die Aussage ändere in:

SELECT o FROM Offer o 
         LEFT OUTER JOIN o.article a 
         LEFT OUTER JOIN o.vendor v 
         WHERE v.number = '0212' OR o.article.nummer = '123456'

Ich habe nur diese Angebote mit anderen Artikeln als NULL . Das liegt daran, dass die Notation für implizite Joins ( o.article.nummer ) erzwingt eine innere Verknüpfung.

Gibt es eine Möglichkeit, Left Outer Joins zu impliziten Joins zu erzwingen (annotationsgesteuert oder etwas anderes)? Wenn es eine Möglichkeit gibt, könnte ich eine Kurzform wie diese verwenden:

SELECT o FROM Offer o 
         WHERE v.number = '0212' OR o.article.nummer = '123456'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X