4
A
回答
12
你永遠不應該更改主鍵的值。主鍵定義對象的身份。如果主鍵已被更改,Hibernate或任何其他JPA實現無法將該對象標識爲同一對象。如果主鍵可能發生變化,您應該選擇另一個主鍵或生成代理鍵。
解決方法是
- 刪除現有的對象
- 與不同的主鍵值再次堅持的對象。
+0
+1,我同意這種方法。看來海報把一個人的名字當作主要關鍵。 – Rudy
0
儘管我知道您需要直接嘗試SQL/JDBC。然後以某種方式嘗試從hibernate內部狀態和所有緩存中使實體無效。
相關問題
- 1. Java的休眠 - 複合主鍵問題
- 2. 休眠外鍵是主鍵
- 3. 休眠:外鍵是主鍵
- 4. 休眠 - 更新表中的主鍵'id'列
- 5. 如何在glassfish 3.1.1中更新休眠?
- 6. 如何更新休眠
- 7. 休眠外鍵在SaveOrUpdate上不更新
- 8. 更新在休眠
- 9. 更新在休眠
- 10. 根據主鍵在休眠狀態下更新一個字段
- 11. 如何使用休眠更新子表中的外鍵值
- 12. 休眠noop id主鍵
- 13. JPA /休眠 - 共享主鍵
- 14. 休眠按主鍵查詢
- 15. 休眠複合主鍵
- 16. 多主鍵表 - 休眠NonUniqueObjectException
- 17. 休眠主外鍵字段
- 18. 沒有主鍵休眠
- 19. 主鍵生成MySQL休眠
- 20. 休眠主鍵異常
- 21. 休眠保存或更新沒有主鍵的對象
- 22. 覆蓋休眠子類中的主鍵
- 23. 休眠實體中的複合主鍵
- 24. 如何使用無主鍵的休眠來更新數據庫記錄
- 25. 休眠 - 保存實體 - 更新表 - 不是基於主鍵
- 26. 休眠更新實體不知道主鍵
- 27. 從休眠3.6更新到休眠4.0
- 28. 休眠更新OneToMany
- 29. 休眠更新表
- 30. 休眠:如何更新不同的ID
請參閱:http://stackoverflow.com/questions/734461/hibernate-alter-identifier-primary-key –
如果您需要更改主鍵,則數據庫設計出現問題。請告訴我,您不要使用「標記」作爲主鍵。快速回答:只需做一份記錄,將其另存爲另一個具有不同ID的記錄,刪除舊記錄。 – Rudy
在漫步之後作爲後續 - 您的意思是更改主鍵列或主鍵的對象值? –