与过滤列的OneToMany关系的JPA JoinTable

时间:2013-05-03 17:28:18

标签: java hibernate jpa

我有两个实体,说A和B,其中在A中,它有两个B集合,定义如下:

@OneToMany
private List<B> relation1
@OneToMany
private List<B> relation2

我不能在B中添加任何其他列,因此我必须使用@JoinTable。我的问题是:

在JPA(或Hibernate,如果它不是标准的),我可以只使用一个JoinTable但是定义一个额外的列来确定连接表中的行应该是哪个关系(relation1或relation2)?

1 个答案:

答案 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;

...虽然我从未做过类似的事情,但我不能保证它有效。