我有一個用例,其中包含表的主鍵的持久對象只有幾個更新字段。在這種情況下,我只想用這些字段更新行。我發現hibernate並不提供任何解決方案,所以我自己編寫了一個方法,它使用反射來確定對象的所有非空字段,並基於此創建更新查詢並最終執行它。我的應用程序是使用spring框架編寫的。到目前爲止,我做到這一點的方式是,我有一個單獨的具有更新方法的util類,它使用會話對象,主鍵,主鍵值和表名。這是實現這個用例的好方法嗎?任何建議,使這更好?只更新休眠中的對象的非空字段
1
A
回答
0
你的問題不清楚給我。爲了更新,你可以做一個選擇,然後保存它。或者只是創建該實體並保存它(主鍵在這裏是必需的)。既然你想更新,你可以使用第一種方法。這裏不需要打擾強制性領域。
0
由於在實體的POJO中使用了原始數據類型,因此大多數時間導致將實體的可空字段中的默認值保存爲持久的原因之一。
請檢查你是否沒有使用任何基元。如果是切換到相應的包裝類,然後保存。保存或更新後,它應該將null傳遞給數據庫。
希望這可以解決您的問題:)
相關問題
- 1. 只更新非空字段
- 2. 休眠:更新子對象
- 3. 休眠中的對象更新
- 4. 休眠應該只更新數據庫中的某些字段
- 5. 休眠:更新關聯的對象
- 6. 休眠更新對象的所有列
- 7. 更新休眠中的一對多字段
- 8. 選擇休眠空字段
- 9. 只更新對象的幾個字段
- 10. 休眠不更新(合併)對象
- 11. 休眠更新多個對象列表
- 12. 休眠:在實體更新欄只有當特定字段爲空
- 13. 休眠:更新空的子表
- 14. 休眠ORM值對象中的常見字段
- 15. JPA /休眠使用setters中的關聯對象而字段爲空
- 16. 使用休眠更新映射表中的其他字段
- 17. 休眠不更新事務性方法中的持久對象
- 18. 使用OpenSessionInView更新休眠中的對象過濾器
- 19. 更新表的特定字段,而不管休眠中的其他字段
- 20. 休眠合併和刷新不保留對對象的更改
- 21. 休眠 - 更新多對多關係的對象
- 22. 休眠前更新沒有更新字段
- 23. MYSQL:最充分的方法來只更新非空字段?
- 24. 休眠filternig對象的子類的特定字段
- 25. 休眠只讀會話 - 更新實體
- 26. Rails的更新只空字段
- 27. 從休眠對象的表中獲取只選中的列
- 28. 休眠空指針保存對象
- 29. 休眠實體映射空對象
- 30. 從休眠3.6更新到休眠4.0
爲什麼你只想更新這些字段? – 2013-10-26 10:03:34