【问题标题】:How to solve duplicated rows in the JPQL query with many-to-one?如何通过多对一解决 JPQL 查询中的重复行?
【发布时间】:2021-08-30 09:10:21
【问题描述】:

我的查询几乎可以工作,但它返回重复的行,因为团队名称重复。我该如何解决这个问题?

我有:"team glass""team foot""team swim"TeamUserCompanyTeam 具有多对一的关系。 当我查询包含"team" 的团队名称时,我得到重复的行,因为它包含"team glass""team foot""team swim"

在前端我需要展示公司!

@Query("SELECT distinct teamUserComp FROM TeamUserCompany teamUserComp WHERE teamUserComp.team.name like %?1% ");

实体

public class TeamUserCompany extends AbstractEntity {
    @ManyToOne(optional = false)
    private Company company;

    @ManyToOne
    private User user;

    @ManyToOne
    private Team team;
}

【问题讨论】:

  • 我在你的代码中看不到任何加入。
  • 对不起,我的英语不太清楚,但您可以阅读描述。
  • 如果您需要的是查询,请发布您的表的示例数据和您的预期结果。
  • 我添加一个屏幕来解释我的问题。

标签: jpa spring-data-jpa distinct jpql


【解决方案1】:

如果您想要不同的公司,您必须选择不同的公司而不是不同的TeamUserCompany

SELECT distinct c 
FROM TeamUserCompany tuc 
JOIN tuc.company c
WHERE tuc.team.name like %?1%

【讨论】:

  • 非常感谢@Jens,但不起作用,它返回一个空结果。
【解决方案2】:

我使用了 Group by 它解决了这个问题。

@Query("SELECT distinct teamUserComp FROM TeamUserCompany teamUserComp WHERE teamUserComp.team.name like %?1% group by (teamUserInter.company)");

【讨论】:

    猜你喜欢
    • 2021-01-14
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-06
    • 1970-01-01
    • 2023-03-26
    • 2013-06-22
    相关资源
    最近更新 更多