繁体   English   中英

按外键值而不是左连接查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM