Ich versuche, eine HQL
Abfrage durchzuführen, die Daten von zwei Objekten kombiniert: Person
und PersonRoleAssociation
.HQL Multi Table Select - Äußere Verbindung?
Ich bin Hibernate
4.3.10 laufen, und Grails
3.0.10.
Meine aktuelle Abfrage sieht wie folgt aus:
SELECT person
FROM Person person,
PersonRoleAssociation personRoleAssoc
WHERE personRoleAssoc.person = person
Von meinem Verständnis ist dies gleichbedeutend mit einer Standard SQL
inneren LEFT JOIN. Dies funktioniert in den meisten Fällen, aber ich muss auch für alle Persons
Abfrage, die eine PersonRoleAssociation
fehlt, und da die obige Abfrage eine linke Verknüpfung ist, laufe ich auf Probleme.
In Standard SQL
würde ich einfach eine linke äußere Verbindung verwenden, jedoch kann ich keine Entsprechung für HQL
finden.
Wie würde ich das Äquivalent einer äußeren Verbindung in HQL
ausführen, ohne die Struktur meiner Objekte zu ändern?
Haben Sie PersonRoleAssociation als OneToMany-Beziehung in der Entität Person zugeordnet? –
@MaciejKowalski Nein, ich habe gehört, dass OneToMany-Beziehungen in Grails ziemlich langsam sein können, also habe ich versucht, es zu vermeiden. –