Java 带筛选列的OneToMany关系上的JPA JoinTable
我有两个实体,比如A和B,在A中,它有两个B的集合,定义如下:Java 带筛选列的OneToMany关系上的JPA JoinTable,java,hibernate,jpa,Java,Hibernate,Jpa,我有两个实体,比如A和B,在A中,它有两个B的集合,定义如下: @OneToMany private List<B> relation1 @OneToMany private List<B> relation2 @OneToMany 私人名单关系1 @独身癖 私人名单关系2 我不能在B中添加任何附加列,因此我必须使用@JoinTable。我的问题是: 在JPA(或者Hibernate,如果它不是标准的话)中,我可以只使用一个JoinTable,但定义一个额外的列来确定
@OneToMany
private List<B> relation1
@OneToMany
private List<B> relation2
@OneToMany
私人名单关系1
@独身癖
私人名单关系2
我不能在B中添加任何附加列,因此我必须使用@JoinTable。我的问题是:
在JPA(或者Hibernate,如果它不是标准的话)中,我可以只使用一个JoinTable,但定义一个额外的列来确定JoinTable中的行应该是哪个关系(relation1或relation2) 您可以尝试:
@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;
@JoinTable(
name=“JOIN\u TABLE\u name”,
连接柱=
@JoinColumn(name=“PARENT\u OBJECT\u ID”),
反向连接柱=
@JoinColumn(name=“relationship\u ONE\u ID”)
)
@独身癖
私人名单关系1;
@可接合(
name=“JOIN\u TABLE\u name”,
连接柱=
@JoinColumn(name=“PARENT\u OBJECT\u ID”),
反向连接柱=
@JoinColumn(name=“RELATION\u TWO\u ID”)
)
@独身癖
私人名单关系2;
…虽然我自己从来没有做过这样的事情,所以我不能保证它能工作。AFAIK,这不受JPA和Hibernate的支持。