2012-04-10 84 views

回答

6

AFAIK,JPA規範沒有標準化國外ID生成器。保存此實例之前,必須以編程方式正確設置PK值。

至於Hibernate,它有an extension annotation來啓用foreign ID generator。您可以選擇使用它,如果你不介意:

@Id 
    @GeneratedValue(generator = "myForeignGenerator") 
    @org.hibernate.annotations.GenericGenerator(
     name = "myForeignGenerator", 
     strategy = "foreign", 
     parameters = @Parameter(name = "property", value = "person") 
) 
    @Column(name = "PERSON_ID") 
    private Long id; 
0

對於什麼是值得JPA 2.0增加了可用於外鍵導入@MappedBy註解。從基督教的榜樣和枯燥簡單地起價陳啓泰的:

@Id 
@Column 
private Long personId; 

@ManyToOne 
@JoinColumn(name = "personId") 
@MapsId 
private Person person; 

我知道這個問題是來自前一段時間,但因爲我解決同樣的問題,當它兩端絆倒,然後挖出@MappedBy,我以爲我」 d將其添加到稍後遇到此問題的任何人。