我有两个实体(表格):部门和人员。两个表都有一个字段 CODE ,不唯一。
如何在这些表之间定义manyToMany双向关系?
我需要关系定义 - 没有sql或hpql查询。
用HPQL做这个没问题,但我需要注释。
选择给定departmentID的人员:
select P.* from Person P, Deparment d
where d.department_id = ? and
p.code = d.code and
? between d.validFrom and d.validTill and
? between p.validFrom and p.validTill
可以用hibernate公式吗?
答案 0 :(得分:0)
您肯定需要DB中的第三个表来拥有多对多关系,并将其称为department_person
。从中声明两个引用Persons
和Departments
表的外键。
之后,您可以:
1)定义一个新的JPA实体DepartmentPerson并定义每个外键的多对一关系。因此,您应该创建两个从Persons
指向的一对多关系
DepartmentPerson
以及从Department
到DepartmentPerson
产生您需要的收藏集。
2)在两个初始实体之一中定义多对多关系,表明department_person
是关系的所有者。