【发布时间】:2016-04-07 17:19:00
【问题描述】:
我有以下 2 个实体:
class User {
private String name;
private UserType userType;
}
class UserType {
private String name;
}
我想获取所有用户类型名称等于“admin”的用户。 我可以编写以下 2 个返回相同结果的查询。
select u from User u where u.userType.name = 'admin';
和
select u from User u join u.userType ut where ut.name = 'admin';
只是想了解哪种方法更可取,有什么区别。 如果我总是可以使用实体之间的导航来获得结果,我什么时候想要遵循 join 方法?
【问题讨论】:
-
如果需要左外连接怎么办?此外,第一种产生隐式连接的方法是可以避免的,因为它可能会根据使用的 JPA 提供程序产生交叉连接。因此,请始终坚持仔细观察生成的 SQL 语句。
标签: java hibernate jpa orm jpql