我是Hibernate的新手,对设置我的数据库有疑问。
我有3个实体:Project,R1和R2。 一个项目可以有一个到多个R1,R1可以属于多个项目。 R2属于一对Project-R1。 R2可以属于Project-R1的多对夫妇。
示例:
我的想法是先将Project连接到R1,让Project记住它有哪些R1。所以第三个表用于连接Project和R1的主键。
当我必须将R2耦合到Project-R1时,我正在考虑使用另一个连接表和Project-R1和R2的主键。但是如何使用Hibernate进行最后一次连接,而不使用在Project-R1-R2旁边有自己的主键的连接表。
甚至可能吗?
答案 0 :(得分:1)
Hibernate docs给出了三元关联的例子:
@Entity
public class Company {
@Id
int id;
...
@OneToMany // unidirectional
@MapKeyJoinColumn(name="employee_id")
Map<Employee, Contract> contracts;
}
// or
<map name="contracts">
<key column="employer_id" not-null="true"/>
<map-key-many-to-many column="employee_id" class="Employee"/>
<one-to-many class="Contract"/>
</map>
文档还指出,R2-(P + R1)类型的关联通常会被建模为单独的实体类。这也是我的方法。