如何加入获取关联的子关系

How to join fetch associated child relation

我有以下星座:

public final class ApplicationUser {

private final @Id
@Wither
long applicationUserId;

@NotNull
@Size(min = 4, max = 20)
private final
String login;

@NotNull
@Email
private final
String eMail; 

@Wither
private Set<Privilege> privileges;
}

现在我想通过 login 查询一个 ApplicationUser,这是通过一个简单的 sql Query.
完成的 我现在的问题:
是否有任何 spring-data-jdbc 与 jpa 的连接获取相关的东西,以便我可以在一个声明的查询中获取关联的 Set<Privilege> privileges
或者我是否必须像这样触发另一个查询:

  1. 通过其登录查询ApplicationUser
  2. 通过外键查询 Privilege applicationuser

谢谢

我应该等我的问题,因为我自己刚刚找到了答案。
所以这是我的答案:
只需将此 sql 查询键入您的存储库函数:

@Query("select a.applicationuserid, a.email, a.login, p from applicationuser a left outer join privilege p on a.applicationuserid = p.applicationuser where lower(a.login) = lower(:login)")

在相应的日志中,已经触发了第二个 sql 查询以获取权限。

描述了执行此操作的默认方法。如果你想避免额外的 select 你可以使用包含连接的语句并使用 ResultSetExtractor 来构造你的实体。

Pro:运行时效率更高。

Con:你需要做更多的工作。