【发布时间】:2022-01-10 21:33:15
【问题描述】:
我很好奇在 JPA/Hibernate 的父实体中是否可以有多个 @ManyToOne 关系。
示例: 我有银行交易,每笔交易都有一个BankPartner担任Creditor和Debtor两个角色。关键是,我只想编辑一次数据。昵称“情妇”的 BankPartner 只是其中之一 :),不管是债权人还是债务人。有一次会改名为老婆,不想单独改。此外,余额是 BankPartner 在这两个角色中的所有交易的总和。
@实体
公共类交易 {
..
@ManyToOne(fetch = FetchType.LAZY, cascade={CascadeType.ALL}, orphanRemoval=true, targetEntity = PartnerEntity.class)
@JoinColumn(name = "CREDITOR_ID")
私人BankPartner 债权人
@ManyToOne(fetch = FetchType.LAZY, targetEntity = PartnerEntity.class)
@JoinColumn(name = "DEBTOR_ID")
私人 BankPartner 债务人
..
}
@实体
公共类 BankPartner {
...
私有字符串名称;
私人字符串昵称;
私有字符串描述;
...
}
我可以想象,从“交易”方向可以以某种方式工作,但找不到从 BankPartner 方向工作的方法。
我可以看到两种不同的方法
- 在 BankPartner 和 Transaction 的交集表中使用“ROLE_TYPE”创建 @ManyToMany
- 从同一个表中创建两个单独的实体 Debtor 和 Creditor。
但是,正如我所说,我对第一种方法感到好奇..
【问题讨论】:
标签: java hibernate spring-data-jpa