2013-07-06 77 views
0

我目前正在開發一個項目,在該項目中我必須使用manytoone關係。我想從數據庫中的現有表中檢索父項並映射到新的子對象。但每次我這樣做都會失敗,而是試圖再次創建父項。這裏的變量聲明:Hibernate @ManyToOne註釋僅創建引用現有父表的子對象

@Entity @Table (name= "children") 
public class Child implements Serializable{ 
@ManyToOne (fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST}) 
@JoinColumn (name = "parent_id",referencedColumnName = "id") 
private Parent parent; 
} 

每次我創造它試圖創建一個新的父與現有的父,我從通往這個錯誤數據庫中抽取的數據的新的子記錄:

duplicate key value violates unique constraint "parents_parent_name_key" 
Detail: Key (parent_name)=(Jimmy) already exists. 

Batch entry 0 insert into parents(parent_name, id) values ('Jimmy', '13')  was 
aborted. Call getNextException to see the cause. 

然後,如果我嘗試重做這我得到一個不同的錯誤:

org.hibernate.PersistentObjectException: detached entity passed to persist: 
com.house.entity.Parent 

感謝耀

回答

0

我能修復它。問題在於我使用了兩個表格和其他表格的一個序列。如果你的實體之間有多個關係,並且你希望在一個實例中持久保存數據,那麼不要這樣做。當我改變它,它工作正常。

相關問題