我在两个表之间有1-n关系(让我们称之为用户和角色):
User(ID, Name, LastName, ...)
Role(ID, User_ID, Label, ...) where User_ID is a foreign key to reference the User
在我的角色存储库中,我有一个这样的方法:
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 = ?
(摆脱无用的连接)
答案 0 :(得分:0)
现在无法检查,但您可以尝试以下操作:
public List<Role> findByUser_ID(Long id);
或
public List<Role> findBy_User_ID(Long id);
它还可能依赖于JPA实现和映射。 ID应正确映射为主键,User_ID作为外键。 Role.user的延迟加载也可能会影响。