Hibernate 休眠多个@JoinTable+@二次表重复项
我有一个类型为Hibernate 休眠多个@JoinTable+@二次表重复项,hibernate,hibernate-mapping,Hibernate,Hibernate Mapping,我有一个类型为@manytomy和@JoinTable关联的关系 问题是,关系中的实体有自己的表,但有几个属性应该转到关联表 我认为A_C表很好 添加@SecondaryTable副本 @Entity @Table(name = "A") @SecondaryTable(name = "A_C", pkJoinColumns = { @PrimaryKeyJoinColumn(columnDefinition = "A_ID", name = "A_ID")}) class A { @M
@manytomy
和@JoinTable
关联的关系
问题是,关系中的实体有自己的表,但有几个属性应该转到关联表
我认为A_C
表很好
添加@SecondaryTable
副本
@Entity
@Table(name = "A")
@SecondaryTable(name = "A_C", pkJoinColumns = {
@PrimaryKeyJoinColumn(columnDefinition = "A_ID", name = "A_ID")})
class A {
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "A_B", joinColumns = {@JoinColumn(name = "A_ID")}, inverseJoinColumns = {@JoinColumn(name = "B_ID")})
private List<B> bs = new ArrayList<B>();
@Column(table = "A_B")
private int b1;
}
@Entity
@Table(name = "B")
@SecondaryTable(name = "A_B", pkJoinColumns = {
@PrimaryKeyJoinColumn(columnDefinition = "B_ID", name = "B_ID")})
class B {
@Column(table = "A_B")
private int a1;
@Column(table = "A_B")
private int a2;
@ManyToMany(mappedBy = "A_ID", fetch = FetchType.LAZY)
private List<A> as = new ArrayList<A>();
}
应该在哪里
A_ID B_ID a1 a2
1 1 1 1
使用@embeddeble
也不起作用
ssedano.
A\U B
是表A
和B
的联接表,但您也将其用作B
的辅助表
这不管用。如果将B
分配给多个a
s,则B.a1
和B.a2
应具有哪些值
有三种可能性:
*a1和a2属于该协会。在这种情况下,您需要一个关联类,它存储这些附加信息。
*a1和a2只属于B:a1和a2不应在表A\U B中
*A
由B
组成:表A\u B
和B
应该合并,多对多关系被一对多关系取代
没有属性的具体名称,很难判断它们是否真正属于
A_ID B_ID a1 a2
1 1 1 1