![](/img/trans.png)
[英]Hibernate - How to select just the foreign key value using Criteria Query without doing a Join?
[英]Query by foreign key value instead of left join
我在两个表之间有1-n的关系(让我们称之为用户和角色):
User(ID, Name, LastName, ...)
Role(ID, User_ID, Label, ...) where User_ID is a foreign key to reference the User
在我的Role存储库中,我有一个这样的方法:
public List<Role> findByUser(User user);
生成的SQL具有以下形式:
select ... from Role r left outer join User u on u.ID = r.User_ID where u.ID = ?
这是一个性能瓶颈。 如何使spring-data生成更简单的查询,如:
select ... from Role r where r.User_ID = ?
(摆脱无用的连接)
现在无法检查,但您可以尝试以下方法:
public List<Role> findByUser_ID(Long id);
要么
public List<Role> findBy_User_ID(Long id);
它还可能依赖于JPA实现和映射。 ID应正确映射为主键,User_ID作为外键。 Role.user的延迟加载也可能会影响。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.