2010-12-23 71 views
0

JPA問題:我想使用連接表(Person_Address)建模1:N(人&地址)關係。JPA I:N和1:1使用連接表

  1. 人(PERSONID PK)

  2. 地址(addressId PK)

  3. PersonAddress( PERSONID,addressId複合PK, PERSONID FK引用人, addressid FK引用地址)

如何映射這些關係?如何在加載Person對象時加載地址列表?

回答

0

您正在描述通常不需要連接表的OneToMany關係。你在許多方面都有一個引用一方的領域。

但是,如果你真的想這樣做,你在做什麼,那麼這應該工作:

@Entity 
public class Person { 

... 

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

... 
} 
+0

你不需要`@ JoinTable`在這種情況下 - 單向一個一對多的關係用途默認情況下是一個連接表,除非指定了`@ JoinColumn`。 – axtavt 2010-12-23 18:15:10