2012-01-02 47 views
0

我試圖使用OneToMany映射映射Address實體和Person實體:「每個人只有一個地址,但地址可以有很多人」。Spring Roo基數按屬性映射

@RooJavaBean 
@RooToString 
@RooEntity(identifierColumn = "addressID") 
public class Address { 

    @OneToMany(cascade = CascadeType.ALL, **mappedBy = "address**") 
    private Set<Person> persons = new HashSet<Person>(); 
} 

我想不出什麼地址實體(粗體),我有JPA(Eclipse的鏈接)和Spring Roo的經驗非常少映射,但我認爲mappedBy should equal addressID,並在我的Person實體雙向ManyToOne mappedBy應該等於personID?

回答

1

由於任何JPA文檔會告訴你(所有JPA實現提供它們),mappedBy是Person類中「Address」類型字段的名稱。如果您在該人員中沒有該類型的字段,則該關係不是雙向的,因此您不使用「mappedBy」

+0

感謝您的解釋,那麼如何映射這兩個實體?是否通過其唯一ID進行映射 – Warz 2012-01-04 15:44:37

+0

也許在1-N JPA關係上閱讀文檔,請參閱http://www.datanucleus.org/products/accessplatform_3_0/jpa/orm/one_to_many_collection.html並選擇是單向還是雙向,如果使用FK或連接表。 – DataNucleus 2012-01-04 16:03:08