JPA ManyToMany与额外过滤器的关系

时间:2015-09-03 15:42:44

标签: java jpa eclipselink

我有两个实体:公民和地址。

公民可以有两种类型的地址 - 真实和注册。每一个都是一个List。

因此,我的Citizen实体中有两个字段:

@ManyToMany
@JoinTable(name = "TBCITIZEN_REG_ADDRESS", joinColumns = @JoinColumn(name = "CITIZEN_ID"),
        inverseJoinColumns = @JoinColumn(name = "ADDRESS_ID"))
private List<Address> registrationAddresses;

@ManyToMany
@JoinTable(name = "TBCITIZEN_REAL_ADDRESS", joinColumns = @JoinColumn(name = "CITIZEN_ID"),
        inverseJoinColumns = @JoinColumn(name = "ADDRESS_ID"))
private List<Address> realAddresses;

如您所见,我在DB中使用两个表来映射实体之间的关系。如果要添加其他类型,我应该添加一个新表。

我想在DB中使用类似的东西映射关系:

CITIZEN_ID  |   ADDRESS_ID  | TYPE
1           |   1           | REAL
1           |   2           | REAL
1           |   1           | REG
2           |   3           | REAL

有没有办法将它用于地图ManyToMany和JPA?

UPD

我知道有@WhereJoinTable Hibernate注释。但我正在使用EclipseLink,用纯JPA来处理它会很棒

0 个答案:

没有答案