Ich habe folgende 2 Einheiten:Unterschied zwischen verbinden und Pfadnavigation in JPA Query
class User {
private String name;
private UserType userType;
}
class UserType {
private String name;
}
ich alle Benutzer mit Namen usertype gleich ‚admin‘ holen will. Ich kann die folgenden 2 Abfragen schreiben, die das gleiche Ergebnis zurückgeben.
select u from User u where u.userType.name = 'admin';
und
select u from User u join u.userType ut where ut.name = 'admin';
Ich wollte nur verstehen, welcher Ansatz vorzuziehen ist, und was ist der Unterschied. Wenn ich immer das Ergebnis über die Navigation zwischen Entitäten erhalten kann, wann soll ich dem Join-Ansatz folgen?
Was ist, wenn Sie eine linke äußere Verbindung benötigen? Darüber hinaus ist der erste Ansatz, der einen impliziten Join erzeugt, vermeidbar, da er je nach dem verwendeten JPA-Provider einen Cross-Join erzeugen kann. Daher sollten Sie immer darauf achten, die generierten SQL-Anweisungen genau zu beobachten. – Tiny