我正在尝试做以下(非常人为的例子):
我有两张桌子A& B形成了多对多关系,我为其创建了一个映射表A_B。然后我有一个表C,它与映射表A_B形成一对多的关系。
tableA
------
a_id [pk]
然后
tableB
------
b_id [pk]
然后
tableA_B
-------
a_id [pk]
b_id [pk]
然后
tableC
------
c_id [pk]
然后
tableC_AB
---------
c_id [pk]
a_id [pk]
b_id [pk]
所以在Hibernate中我创建了A,B和B的实体。 ç...
ClassA {
....
@JoinTable(
name="A_B",
joinColumns={@JoinColumn(name="a_id")},
inverseJoinColumns={@JoinColumn(name="b_id")}
)
@ManyToMany(cascade = {CascadeType.ALL})
private Set<B> bset = new HashSet<B>();
}
然后(反比关系)
ClassB {
@ManyToMany(mappedBy="bset")
private Set<A> subjects = new HashSet<A>();
}
这会创建第一个映射A_B但是我不确定如何在hibernate中创建映射C_AB。我甚至没有A_B的实体(只存在于数据库中)所以我该怎么做呢?
任何帮助表示感谢。
干杯,
JLove
答案 0 :(得分:0)
我想建议使用独立的关联/连接/链接实体类而不是隐式的多对多表。因为在现实世界中没有联合表格,没有其他字段,如创建时间,由协议和雇佣合同等创建。
所以我的意思是: