【问题标题】:Filter request JPQL (Find entries that do not contain an element with a specific id in the list)过滤请求 JPQL(在列表中查找不包含具有特定 id 的元素的条目)
【发布时间】:2020-08-24 04:29:48
【问题描述】:

下午好,我正在尝试对数据采样进行正确的查询,但显然我什么都不知道((

我需要显示未包含在具有给定 ID 的项目的团队中的用户

我的请求部分有效:它过滤用户,但如果用户在另一个项目的另一个命令中,则条件不满足((

@Query("select distinct u from User u " +
        "left join u.userTeams uTeams " +
        "where u.userTeams is empty or uTeams.teamProject.projectId <> :projectId")
List<User> findAllNotAddedToProject(@Param("projectId") Long project);

截图显示该用户有两个不同项目的团队,所以我不需要找到这个用户,因为其中一个团队分配给项目,而第二个没有(请求通过第二个命令找到它)

我的数据库架构:

【问题讨论】:

    标签: java sql spring hibernate jpql


    【解决方案1】:

    使用类似下面的东西

    @Query("select u from User u where not exists (" +
            "select 1 from Team t join t.users sub " +
            "where sub.id = u.id empty and t.teamProject.projectId = :projectId)")
    List<User> findAllNotAddedToProject(@Param("projectId") Long project);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-14
      • 2011-08-09
      • 2020-01-10
      • 2021-10-26
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多