JPA I:N和1:1使用Junction表

时间:2010-12-23 16:44:31

标签: jpa

JPA问题:我正在尝试使用联结表(Person_Address)建模1:N(人员和地址)关系。

  1. 人(personId PK)

  2. 地址(addressId PK)

  3. PersonAddress( personId,addressId复合PK, personId FK引用人, addressid FK参考地址)

  4. 如何映射这些关系?加载Person对象时如何加载地址列表?

1 个答案:

答案 0 :(得分:0)

您正在描述通常不需要连接表的OneToMany关系。你只是在很多方面有一个引用一方的字段。

但是,如果你真的想做你正在做的事情,那么这应该有效:

@Entity
public class Person {

...

  @OneToMany
  @JoinTable(
    name="PersonAddress",
    joinColumns = @JoinColumn( name="personId"),
    inverseJoinColumns = @JoinColumn( name="addressId")
   )
  public Set<Address> getAddresses() {...}

...
}