java - 双向 OneToOne 中的相同实体
问题描述
我正在尝试找到有关此问题的解决方案:我有一个映射另一个实体的规则的关系表。
@Entity
public class Relation {
@Id
public Long id;
@OneToOne
public Address addressHome;
@OneToOne
public Address addressWork
}
和一个班级地址
@Entity
public class Address {
@Id
public Long id;
}
我会从地址到关系建立一个双向关系。
有人能帮我吗?谢谢
解决方案
你需要做的是告诉 Hibernate 和之间的关系Address
:Relation
首先你需要将它实现到 Relation 中:
@Entity
public class Relation {
@Id
public Long id;
@OneToOne
@JoinColumn(name = "addressHome", referencedColumnName = "id")
public Address addressHome;
@OneToOne
@JoinColumn(name = "addressWork", referencedColumnName = "id")
public Address addressWork;
}
然后你需要像这样编辑你的地址类:
@Entity
public class Address {
@Id
public Long id;
@OneToOne(mappedBy = "addressHome")
public Relation relationHome;
@OneToOne(mappedBy = "addressWork")
public Relation relationWork;
}
如果您愿意,可以将注释放在 getter 上而不是变量上。
推荐阅读
- serenity-platform - 宁静平台;LocalText.Get("Db.something") 使用特定语言而不是所选语言?
- assembly - 使用 CPUID 指令了解 C 的编译器 mov [mem]、reg 指令
- reactjs - undefined 不是 react-native 中的对象(评估'context._context')
- css - 在不使用 flex-col 的情况下对齐 2 个元素
- reactjs - React-admin 在 List 中创建对话框
- java - 如何使数组具有我在运行时输入的大小?
- javascript - 为什么我的 JavaScript 函数不调用另一个函数?
- excel - 将 PDF 文件合并为 3 个 PDF 文件
- javascript - 你可以从盒子算法中获得的最大糖果 - JavaScript
- python - 在字典中定义规则后替换熊猫数据框(词频)一个词