我正在嘗試運行以下基本JPA / EJB代碼:public static void main(String[] args){ UserBean user = new UserBean(); user.setId(1); user.setUserName("name1"); user.setPassword("passwd1"); em.persist(user); }我收到此錯誤:javax.ejb.EJBException: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.JPA.Database有任何想法嗎?我在互聯網上搜索,發現的原因是:這是由創建對象的方式引起的,即,如果您顯式設置ID屬性。刪除ID分配即可解決此問題。但是我沒有得到,我必須修改什么才能使代碼正常工作?
3 回答

DIEA
TA貢獻1820條經驗 獲得超2個贊
發生此錯誤是因為設置了對象的ID。Hibernate區分臨時對象和分離對象,并且persist僅適用于臨時對象。如果persist斷定對象是分離的(因為設置了ID,它將分離),它將返回“分離的對象傳遞給持久化”錯誤。您可以在此處和此處找到更多詳細信息。
但是,這僅在您指定要自動生成的主鍵時適用:如果將該字段配置為始終手動設置,則您的代碼將起作用。
添加回答
舉報
0/150
提交
取消