Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带筛选列的OneToMany关系上的JPA JoinTable_Java_Hibernate_Jpa - Fatal编程技术网

Java 带筛选列的OneToMany关系上的JPA JoinTable

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,但定义一个额外的列来确定

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

@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的支持。