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

JPA@OneTomany和@ManyToOne按部分复合主键提取

段干祺
2023-03-14

我有两个实体的订单和项目。在Order entity中,id是OrderId、UserId的复合主键,但在Items中,外键仅为Order id。

如何使用订单Id获取项目列表

public class Order {
   @EmbeddedId
   private CompositePrimaryKey pk;

   @OneToMany
   @JoinColumn(name="ORDER_ID")
   private List<Items> itemsLst;
}

public Class Items {
   @Id
   @Column(name="ORDER_ID")
   private Integer orderId;
}

我尝试使用mappedBy,如上所述,无论在哪种情况下,我都得到了错误。

任何帮助都是非常感谢的。

共有1个答案

秦昊穹
2023-03-14

如果Order和Item之间有一个OneToMany,则ORDER_ID不能作为Item的主键,因为它不是唯一的。也许还有其他问题,但这是一个明显的问题,我可以发现,而没有看到错误。

 类似资料:
  • 问题内容: 我正在使用带有注释的Hibernate(在spring),并且我有一个对象,该对象具有有序的多对一关系,该对象的子对象具有复合主键,该子对象的一个​​组成部分是返回到该对象的外键。父对象的ID。 结构看起来像这样: 我尝试了各种注释的组合,但似乎都不起作用。这是我能想到的最接近的: 经过长时间的实验后,我得出了这一结论,在该尝试中,我进行的其他大多数尝试都产生了由于各种原因甚至无法加载

  • 在关于如何使用复合主键的情况下

  • 我有以下表格,如何将它们映射到JPA实体: 事件表与会议表具有一对多的关系。我如何在JPA中映射这种双向关系?

  • 问题内容: 我的JPA模型中有以下类(省略了getters,setters和无关字段): 我需要定义一个类,使得当从所述类生成DDL时,相应的表的主键被由密钥和。我尝试了以下方法: 但这会为表生成以下内容: 请注意,和都是可为空的,当我尝试将DDL加载到SQL Server时会导致以下错误 无法在表“ PRICE”中的可为空的列上定义PRIMARY KEY约束 我不明白为什么这些可以为空,因为在域

  • 问题内容: 我目前正在阅读有关实体关联的Hibernate文档,但遇到一些困难却难以理解。它在本质上做的区别和联系。尽管我在实际项目中使用了它们,但是我无法完全理解它们之间的差异。据我了解,如果一个表/一个实体与另一个实体有关联,则该关联应来自另一侧。那么,我们应该如何根据具体情况决定选择哪个呢?它又如何影响数据库/查询/结果?到处都有很好的例子吗? PS:我认为这与问题相关,如果有人可以解释关联

  • 我试图定义两个类之间的双向关系。拥有方是类测验,相反方是用户。一个用户可以创建许多测验,而一个测验只能有一个创建它的用户。我在网上找到的每一个教程都指出,在owning方面,您指定了ManyToOne注释和JoinColumn,在相反的方面,您使用owners字段的名称指定了OneToMany和mappedBy。然而,当我这样做时,IDE给了我一个错误“找不到逆关系”。我在这个概念上哪里出错了?如