有沒有辦法減少SQL插入和SQL更新中的不必要/空字段?優化Hibernate實體保存?
例如,我有一個hibernate實體類映射到一個有10列的表。數據填充實際上分兩個階段完成。當用戶提交請求時,我會將請求信息插入帶有hibernate實體的表中,但只填充7個字段。經過一些處理(例如等待其他用戶交互)後,我將填充剩餘的3個字段(使用前一個插入的ID)。
如果我堅持單個實體類,所述第二更新,我做的步驟如下:
1)裝載由id標識的實體
2)保存實體,其產生SQL似乎在發送所有的字段。
或者,我創建了兩個實體類,並指向同一個表並單獨保存它們。
有沒有人有更好的建議?
肯特
編輯:
我真正想實現的東西以下效果:(?,?,?) 插入T(ID,FIELD1,FIELD2) 更新t將字段3 =?字段4 =?其中id =?
我現在dynamicUpdate =真 插入T(ID,FIELD1,FIELD2)(?,?,?) 選擇場,場2,字段3,字段4在t可以達到最佳的其中id =? update t set field3 =?字段4 =?其中id =?
有沒有辦法消除這個select語句?插入後,原始的持久對象不會存儲在內存中的任何位置。
附加說明。實體類用Hibernate驗證進行註釋。我目前正在嘗試達到上述預期效果,所以我評論了他們。但是當我將它們重新打開時,由於@NotNull和@NotEmpty,我得到驗證錯誤。
dynamicUpdate = true完美。 – sqlnewbie 2011-04-01 06:43:01