Hallo!
Ich möchte gerne bei einer LEFT JOIN FETCH Query von den abhängigen Tabellen nur teile einlesen.
Also zum Beispiel (konstruiert):
Tabelle 1: "PERSONEN"
Tabelle 2: "ADRESSEN"
nun habe ich zum Beispiel 3 Personen, die jeweils 0 -n ( nicht 1-n!) Adressinformationen haben können.
Wie kann ich das LEFT JOIN formulieren, so daß ich zwar alle Personen bekomme, aber die Collections aus den 1:n - Beziehungen nur für Adressen mit passendem Filter EAGER geholt würden.
Im native SQL würde ich dem
LEFT OUTER JOIN ADRESSEN adressen on (adressen.person_id=personen.id AND adressen.ort = 'Musterhausen')
als Kriterien geben.
Wenn ich aber in JPA das formulieren möchte bleibt mir (und da ist meine Frage) zwecks Einschränkung nur der allgemeine WHERE Part übrig, so daß ich:
SELECT personen From Personen personen LEFT JOIN FETCH personen.Adressen adressen WHERE adressen.ort = 'Musterhausen'
nennen muss.
Das führt aber dazu, daß ich lediglich alle Personen mit mindestens einer Adresse aus Musterhausen bekomme. Ich möchte aber auch die Personen bekommen die gar keinen Adress-Satz habe...
Geht das in den non native SQL Query languages irgendwie abzubilden?
|