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

子实体在父实体中的多重表示

闻人昊昊
2023-03-14

我很好奇,在JPA/Hibernate的父实体中,是否可能有几个相同实体的@manytone关系。

示例:我有银行交易,每笔交易都有一个银行合作伙伴,分别担任债权人和债务人。关键是,我只想编辑一次数据。昵称为“情妇”的银行合作伙伴只有一个:),无论是债权人还是债务人。一旦,它将重命名为妻子,所以我不想单独更改。此外,余额是BankPartners在这两个角色中的所有交易的总和。

@实体公共类事务{。。

@manytone(fetch=FetchType.LAZY,cascade={CascadeType.ALL},orphanRemoving=true,targetEntity=PartnerEntity.class)
@JoinColumn(name=“债权人ID”)
私人银行合伙人债权人

@ManyToOne(fetch=FetchType。懒惰,目标实体=PartnerEntity.class)
@JoinCol列(name="DEBTOR_ID")
私人银行合作伙伴债务人
...

}

@实体
公共类BankPartner{

私有字符串名称;
私有字符串昵称;
私有字符串描述;

}

我可以想象,从“交易”方向在某种程度上可以工作,但找不到从银行合作伙伴方向工作的方法。

我可以看到两种不同的方法

  1. 在BankPartners和Transaction之间的交集表中创建带有“ROLE_TYPE”的@ManyTo多
  2. 从同一个表创建两个独立的实体债务人和债权人。

但是,正如我所说,我对第一种方法很好奇...

共有1个答案

孟俊发
2023-03-14

可以使用多列联接,如下所示:

@Entity
public class Transaction { 

@ManyToOne(fetch = FetchType.LAZY, cascade={CascadeType.ALL}, orphanRemoval=true, targetEntity = PartnerEntity.class)
@JoinColumns({
    @JoinColumn(name = "DEBTOR_ID"),
    @JoinColumn(name = "CREDITOR_ID")
})
private BankPartner partner

}
 类似资料:
  • Javers v5.6.3 我有一个父实体,其中包含一系列子实体。当我区分两个父母列表,发现一个孩子有变化时,我需要知道哪个父母包含变化的孩子。 我的实体: 我想要区分的是: 为了简洁起见,切换到Groovy: 我是如何区分的: 输出: 我的问题是: 如何发现哪个父级包含子级/c1? 除了我有一个老板集合之外,这类似于应该检测薪酬变化()示例。使用该示例,给定具有不同下属的老板列表,如何找出的老板

  • 我可能需要一些帮助,因为我被这些文件弄糊涂了: 我有一个JPA母公司: 和孩子: 如果我只是增加联系人,我希望JPA能够建立这种关系。 e、 g: 现在发生的是: 触点插入DB(良好) 使用providerX。联系人中的id。提供者列(良好) provider\u contact表中未显示任何关系条目 我知道我可以将联系人设置为提供者的属性<代码>providerX。联系人。添加(c)。。。回购。

  • 尝试获取父实体(Msg)的实体,其中父PK (msg_id)是子实体中的FK时,尝试保持子实体(MsgRetry)时出错。 错误,如:org.hibernate.id.IdentifierGenerationException:试图从null一对一属性分配id 父实体,不需要知道子实体(至少我认为它不需要知道)。一旦子实体被持久化,我就会尝试也持久化父实体。我可以通过在子实体中没有父实体并调用关联

  • 删除父实体时,我还想删除关联的子实体(从数据库中)。我试图在删除时使用级联,如下所示,但我一定做错了什么。 当对父实体对象调用删除时,我收到错误消息:“该实体仍在数据库的其他地方引用”。我可以确认该实体在数据库的其他地方引用的唯一地方是在下面的两个表中(如果我手动从数据库中删除子行,对父实体对象的删除调用工作正常)。在过去的9个小时里,我一直在阅读实体对象并尝试不同的东西。我做错了什么? 这是我的

  • 我正在尝试使用JPA注释设计我的实体类。 我正在努力做的是: 具有 ID、***电子邮件、密码、activation_key、active、role***的用户表 和许多类型的用户表。 student_table user_id第一名最后一名公司地址等 MENTOR user_id第一名最后一名DOB部门等 当用户注册时,根据他们的角色,他们将被分为两个表(用户、导师/学生) 当它们登录时,Man

  • 如何返回与JPA中的父级有关系的实体列表? 我有一个用户实体,在名为的属性上有@OneToMany映射。子实体为Pet类型。这只是一种单向关系。 如何在JPA中编写返回给定用户的所有宠物的连接?