【问题标题】:Duplicated results by using EntityGraph in the case of OneToMany relationship在 OneToMany 关系的情况下使用 EntityGraph 重复结果
【发布时间】:2017-04-22 15:37:30
【问题描述】:

我决定在我最近开始的项目中使用 JPA 2.1 的实体图功能,但我遇到了一个问题。

当您在 ManyToOne 关系上扩展图表时效果很好,但对于 OneToMany,结果会重复,因为我的提供程序(Hibernate)使用左外连接。

我看到了一些解决方案,他们提出了 Distinct 关键字来解决这个问题,但我认为这是一个棘手的解决方案,即使我们如何获得下一个级别的实体 Distinct。

我的意思是如果我有 3 个实体 A、B 和 C 我将在 A 而不是 B 上使用 Distinct,其中 B 与 C 具有 OneToMany 关系,然后我们在 A 中获得 B 的重复记录,依此类推

【问题讨论】:

    标签: hibernate jpa entitygraph


    【解决方案1】:

    我想通了

    当我们将 Distinct 添加到查询中时,生成为 SQL 的内容对数据库提供的结果没有任何影响,因为 据我所知,Distinct 关键字作用于它前面的所有列强>。那么 Distinct 或没有从数据库提供的结果(在这种情况下)将是相同的。

    但是Distinct 告诉JPA 或其提供者在结果集合中获取最左边表的记录不同。这就是导致我们达到预期结果的关键。

    如果我理解错了,请纠正我

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2021-06-01
      相关资源
      最近更新 更多