gpt4 book ai didi

java - getresultlist - 查询正常,但列表中的数据重复

转载 作者:行者123 更新时间:2023-12-01 15:21:49 27 4
gpt4 key购买 nike

我在使用 getResultList() 时遇到问题。我的查询执行时没问题,返回 700 个结果。在返回列表中,我有 700 个结果,但列表包含重复数据。所以我没有所有结果。

    public List<EscaleCatalogueKaravel> obtenirListeEscaleKaravelSelonMarche(Integer refMarche, Integer refLangue) {
List<EscaleCatalogueKaravel> listeEscales = entityManager.createQuery("select distinct p from EscaleCatalogueKaravel p " +
"where p.refMarche=:refMarche and p.refLangue=:refLangue group by idEscale ")
.setParameter("refMarche", refMarche)
.setParameter("refLangue", refLangue)
.getResultList();

if (listeEscales == null || listeEscales.size() == 0) {
return null;
}
return listeEscales;

}

你有什么想法吗?

最佳答案

您正在使用 MySQL,对吧? Oracle 不会执行查询,而是抛出错误。

为了正确使用 group by 子句,您只能选择 group by 子句中也提到的行(或表达式)。如果您选择的行不在 group by 子句中,则该行对于一个组的成员可能具有不同的值。数据库应返回以下哪些值? MySQL 任意返回可能值之一,但这是不正确的。

在您的查询中,您要么仅从...中选择不同的idEscale,要么按所有必要的列进行分组并仅选择这些列,或者删除group by子句。顺便说一句,distinct 也可以在没有 group by 的情况下使用,并且只有在确实必要时才应该使用 unique,因为它会使查询变慢。

关于java - getresultlist - 查询正常,但列表中的数据重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10794483/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com