Ho i seguenti 2 soggetti:Differenza tra unirsi e navigazione percorso nella query JPA
class User {
private String name;
private UserType userType;
}
class UserType {
private String name;
}
Voglio recuperare tutti gli utenti con nome UserType uguale a 'admin'. Posso scrivere le seguenti 2 query che restituiscono lo stesso risultato.
select u from User u where u.userType.name = 'admin';
e
select u from User u join u.userType ut where ut.name = 'admin';
Volevo solo capire quale approccio è preferibile e qual è la differenza. Se posso sempre ottenere il risultato usando la navigazione tra entità quando voglio seguire l'approccio di join?
E se fosse necessario un join esterno sinistro? Inoltre, il primo approccio che produce un'adesione implicita è evitabile poiché potrebbe produrre un cross join a seconda del provider JPA in uso. Pertanto, insisti sempre nell'osservare attentamente anche le istruzioni SQL generate. – Tiny