当前位置: 首页 > 知识库问答 >
问题:

在一对多关系的情况下使用EntityGraph复制结果

宋高谊
2023-03-14

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

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

我看到一些解决方案,他们提出了独特的关键字来解决这个问题,但我认为这是一个棘手的解决方案,即使我们如何才能让下一级实体不同。

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

共有1个答案

张砚
2023-03-14

我想出来了

当我们将 Distinct 添加到查询中时,作为 SQL 生成的内容对数据库提供的结果没有任何影响,因为据我所知,Distinct 关键字作用于它前面的所有列。然后,由 Distinct 或 without 从数据库中提供的结果(在本例中)将是相同的。

但是 Distinct 向 JPA 或其提供商表示,要将结果集合上最左边的表的记录区分开来。正是这一点引导我们达到我们期望的结果。

如果我误会了请纠正我

 类似资料:
  • 我使用Spring Data Neo4J 5.0.10与Spring Boot 2.0.5。节点I具有以下2个实体,用户兴趣实体和用户兴趣实体的关系。 这很有效。我可以创建一个新用户并将该用户与userInterest关联。当我再次发送相同的详细信息时,节点和边不会重复。 当我在关系实体中启用权重属性时,即使权重属性值相同,关系似乎也是重复的。 我记得我读到过,只要属性相同,就不应该创建另一种关系

  • 你好,我正试图建立一对多的关系。用户表中的一个用户可以有多个公司,另一边的公司只能有一个用户。 我的公司表迁移是 我的用户模型是 我的公司模式是 我正试图获得特定用户的所有公司 尝试使用whereHas,但对象中没有数据 我的错误在哪里?

  • 我添加数据的表单如下所示: 当klik保存时,它将调用控制器 我的控制器是这样的: 我的服务是这样的: 我的模型用户是这样的: 所以我有3个表:users表、users\u banks表(pivot表)和master\u datas表 类型为bank的主数据表中的银行名称列表 Users表具有字段id、名称、电子邮件、密码等= Master_datas表有字段id(这是银行id)、名称(这是银行名

  • 我使用开关盒获得较大范围:

  • 问题内容: 我正在尝试使用SQLAlchemy上的声明性实现自引用的多对多关系。 该关系表示两个用户之间的友谊。在网上(在文档和Google中)我都发现了如何建立自我参照的m2m关系,以某种方式区分角色。这意味着,在这种m2m关系中,UserA例如是UserB的老板,因此他在“下属”属性或您拥有的内容下列出了他。以相同的方式,用户B在“上级”下列出了用户A。 这是没有问题的,因为我们可以用这种方式

  • 用户表结构:用户 id、名称、用户名、密码、创建时间、更新时间 文章表结构:文章 id、标题、内容、创建时间、更新时间 关系表:文章\用户 id、文章id、用户id处于活动状态、创建时间、更新时间 标签 id、名称、用户id、创建时间、更新时间 透视表项目用户与标记的关系。表:文章\用户\标签 标签号,物品号,用户号 我想连接这些表,以便可以像这样或类似的格式访问 并且应该能够创建/更新smth,