我正在尝试在不同的人之间创建关系,但找不到如何使用 JPA 来做到这一点的方法。以下是支持该要求的模型:
人员表:
ID 名字 姓氏
1 约翰 海勒
2 约瑟夫 海勒
3 安德鲁 海勒
4 史蒂文 海勒
Person_Relationship表
ID Person1 Person2 关系
1 1 2 父级
2 2 1 子
3 1 3 sibling
4 3 1 sibling
5 4 1 秘书
如果您曾经使用 Hibernate 作为 JPA 提供者实现过上述内容,有人可以分享一下您的经验吗?
最佳答案
最简单的方法是在 Person
实体和 RelationShip
实体之间使用 OneToMany 关联,每个实体映射关联的表:
public class Person {
@OneToMany(mappedBy = "person1")
private List<RelationShip> relationships;
public List<Person> getSiblings() {
List<Person> result = new ArrayList<Person>();
for (RelationShip r : relationShips) {
if (r.getType() == RelationshipType.SIBLING) {
result.add(r.getPerson2());
}
}
}
...
}
关于java - 如何使用 JPA、Hibernate 与同一实体建立关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9139930/