【问题标题】:JPA JoinTable on OneToMany relationship with Filtering ColumnJPA JoinTable on OneToMany 与过滤列的关系
【发布时间】:2013-05-03 17:28:18
【问题描述】:

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

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

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

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

【问题讨论】:

  • AFAIK,JPA 和 Hibernate 都不支持。

标签: java hibernate jpa


【解决方案1】:

你可以试试:

@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;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多