我有两个实体,说A和B,其中在A中,它有两个B集合,定义如下:
@OneToMany
private List<B> relation1
@OneToMany
private List<B> relation2
我不能在B中添加任何其他列,因此我必须使用@JoinTable。我的问题是:
在JPA(或Hibernate,如果它不是标准的),我可以只使用一个JoinTable但是定义一个额外的列来确定连接表中的行应该是哪个关系(relation1或relation2)?
答案 0 :(得分:0)
你可以尝试:
@JoinTable(
name="JOIN_TABLE_NAME",
joinColumns=
@JoinColumn(name="PARENT_OBJECT_ID"),
inverseJoinColumns=
@JoinColumn(name="RELATION_ONE_ID")
)
@OneToMany
private List<B> relation1;
@JoinTable(
name="JOIN_TABLE_NAME",
joinColumns=
@JoinColumn(name="PARENT_OBJECT_ID"),
inverseJoinColumns=
@JoinColumn(name="RELATION_TWO_ID")
)
@OneToMany
private List<B> relation2;
...虽然我从未做过类似的事情,但我不能保证它有效。