我的問題是與分離的對象...在擁有已知主鍵的同時在Hibernate中持久化對象。
我目前使用Spring與Hibernate。
我有一個主鍵爲String的映射對象(我知道它很糟糕......但重構代碼需要幾個月),我希望堅持下去。 (我已經簡化了對象只有兩個屬性)
@Id
private String id;
private String pattern;
因此,例如,我想補充一點,如:
[「身份證」:「myFirstPattern」,「模式」:「*」]
請注意,我的主鍵已經設置。問題在於,無論何時我試圖堅持,Hibernate都會嘗試將該對象與上下文中的任何對象(由於主鍵)關聯,並且將無法這樣做,因爲沒有。拋出分離的對象錯誤。
我已經做了一些研究,得出結論merge()將滿足我的需求,因爲即使對象不可用,它仍然存在並更新。但是,我發現這是一個相當髒的解決方法,並希望檢查是否有任何其他解決方案來解決這個問題。
考慮到我們有一個Helper圖層,所以Services圖層不會直接與HibernateDao圖層一起工作。所以我可以通過添加將會調用相同的合併DAO方法的'persist'和'update'方法來「屏蔽」這個。
謝謝, 弗拉維奧。
嗨弗拉維奧,你可以請張貼您的休眠映射配置?你能確認你的Hibernate映射能夠從數據庫中檢索對象嗎? – Caps
<映射類= 「com.dao.model.Plan」/> \t \t <映射類= 「com.dao.model.TrunkGroup」/> \t \t <映射類=」 com.dao.model.Route」 /> \t \t <類的高速緩存使用= 「讀 - 寫」 類= 「com.dao.model.Plan」/> \t \t \t \t –