我有三个表A
,B
和C
以及一个映射表A_B_C
,它具有所有三个表和其他一些属性的外键(比方说{ {1}},X
)。现在,我想在我的java类中加入代表这三个表。
这些表之间的关系是一对多的。因此,我希望我的Java类看起来像这样。
Y
我想知道是否可以利用Hibernate Annotations。如果没有,有没有办法可以编写自定义查询并填充变量?
答案 0 :(得分:8)
不幸的是,hibernate没有为这种情况提供任何开箱即用的注释。只能通过创建映射到A_B_C
的类映射来处理此方案:
@Entity
@Table(name = "A_B_C")
public class name = "A_B_C" {
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "FK_B", nullable = false)
private B b;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name = "FK_C", nullable = false)
private C c;
//Getters, Setters, other attributes etc.
}
在A:
中有一个这个对象的列表 @Entity
@Table(name = "A")
public class name = "A" {
@OneToMany(cascade=CascadeType.ALL)
@JoinColumn(name = "FK_A", nullable = false)
private Set<A_B_C> abc;
//Getters, Setters, other attributes etc.
}
以编程方式将Set abc转换为B,C
。
答案 1 :(得分:-1)
我相信你所寻找的更多是以下
其中连接表有一个额外的列
希望这篇文章有所帮助
干杯