【问题标题】:"nested" table calls in JPA? (translate SQL to JPA)JPA中的“嵌套”表调用? (将 SQL 转换为 JPA)
【发布时间】:2020-07-29 18:51:03
【问题描述】:

我正在尝试将此 SQL 转换为 JPA @Query 调用,并且正在努力了解如何在一个 JPA 查询中处理多个表调用,特别是我试图返回分配给程序。

DB结构如图:

我要翻译的查询是:

SELECT *FROM  User WHERE id in ( SELECT user FROM UserProjectAssignment WHERE project in ( SELECT id FROM Project WHERE program = programId))

我当前的查询是:

@Query("SELECT COUNT(u) FROM User u, UserProjectAssignment upa, Project p WHERE u.id = upa.project AND WHERE upa.project = (p.program = :programId)")
Long countUsersAssignedToProgram(@Param("programId") Long programId);

【问题讨论】:

    标签: sql spring hibernate jpa


    【解决方案1】:

    基本上你需要的是使用 JOIN s 进行查询 但是只有知道类结构才能形成查询。

    你可以像这样改变mysql查询

    Select user from User user join UserProjectAssignment upa on user.id = upa.userid join Project p on upa.projectId = p.id join program pgm on p.programId = pgm.id ;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-30
      • 1970-01-01
      • 2021-06-27
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 2013-10-09
      相关资源
      最近更新 更多