簡體   English   中英

在休眠狀態下僅更新對象的非null字段

[英]Update only non null fields of an object in hibernate

我有一個用例,其中只有幾個持久性對象的更新字段,其中包括表的主鍵。 在這種情況下,我只想使用這些字段來更新行。 我發現hibernate並沒有為此提供任何解決方案,所以我自己編寫了一種方法,該方法使用反射來確定對象的所有非null字段,並基於此創建更新查詢並最終執行它。 我的應用程序是使用spring框架編寫的。 到目前為止,我的工作方式是,有一個單獨的util類,該類具有一個update方法,該方法接受一個會話對象,主鍵,主鍵值和表名。 這是實現此用例的好方法嗎? 有什么更好的建議嗎?

我不清楚您的問題。 要進行更新,您可以選擇一個選項然后保存。 或僅創建該實體並保存它(在此必須使用主鍵)。 由於要更新,因此可以使用第一種方法。 無需在此處煩惱必填字段。

大多數情況下,導致將默認值保存在要保留的實體的可空字段中的原因之一是,因為在實體的POJO中使用了原始數據類型。
請檢查您是否未使用任何原語。 如果是,則切換到各自的包裝器類,然后保存。 保存或更新后,應在提交時將null傳遞給數據庫。
希望這能解決您的問題:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM