在OneToMany关系的情况下使用EntityGraph重复结果

时间:2016-12-07 15:51:15

标签: hibernate jpa entitygraph

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

当您将图形扩展到ManyToOne关系时,它会很顺利但是对于OneToMany,结果会重复,因为我的提供程序(Hibernate)使用左外连接。

我看到一些解决方案,他们提出了明确的关键词来解决这个问题,但我认为这是一个棘手的解决方案,即便如此我们如何才能获得下一级实体的独特性。

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

1 个答案:

答案 0 :(得分:1)

我想通了

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

但是区别对JPA或其提供商说要在结果集合中获取最左表的记录。这就是我们所期望的结果。

如果我误解了,请纠正我