1

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

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

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

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

4

1 回答 1

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;

...虽然我自己从来没有做过这样的事情,所以我不能保证它会起作用。

于 2013-05-03T21:51:37.927 回答