Diese JPQL Abfrage:Wie kann ein Pfadausdruck, der zu einem linken Join in JPA führt, ausgeführt werden?
select p from Post p where p.status = 'public' or p.author.name = 'John'
entspricht einem join
zwischen post
und author
, so dass er vermisst alle Datensätze, die öffentlich sind (status = 'public'
), die keinen Autor hat (author = null
).
Gibt es eine Möglichkeit, dies in einen linken Join zu konvertieren, ohne eine explizite linke Join-Klausel zum "von" -Teil hinzuzufügen?
Ich kann keine explizite links trete auf „aus“ Teil wie folgt aus:
select p from Post p left join p.author a where p.status = 'public' or a.name = 'John'
Da der Code, der die p.author.name = 'John'
Klausel erzeugt keine Möglichkeit hat, eine neue Beziehung zu dem „von“ hinzufügen Teil.
Also, dieser Teil statisch ist, kann ich nur anfügen Klauseln es:
select p from Post p where p.status = 'public'
beschrieben bedeutet, wie explizit "LEFT OUTER JOIN p.author" im FROM-Teil der Abfrage sagen? Jede JPQL-Dokumentation würde zeigen, wie das geht. –
Ich bin auf der Suche nach einer Möglichkeit, eine linke Join zu tun, ohne es explizit im Teil der Abfrage zu sagen. Ich habe die Frage zur Klärung bearbeitet. –
können Sie nicht. Dafür ist die FROM-Klausel zuständig. Putting Zeug in der WHERE wird bekommen, was der JPA-Anbieter gibt Ihnen .. –