2011-12-14 94 views
0

我從here知道,hibernate可配置爲只更新數據庫到已修改實體的字段,而不是實體的所有字段(即使它們沒有更改)。這是默認行爲。休眠動態更新

我的問題是,爲什麼後面的默認行爲,不應該是更新只是修改字段的默認行爲?

此外,爲什麼它甚至支持未修改字段的更新?有沒有理由更新未經修改的字段?

+0

[Hibernate dynamic-update = false]的可能重複(http://stackoverflow.com/questions/4709293/hibernate-dynamic-update-false) – axtavt 2011-12-14 16:30:19

回答

3

我的問題是,爲什麼後面的默認行爲,不應該是 是更新只是修改字段的默認行爲?

由於只有更新修改字段是一個代價高昂的情況,如果有大量的屬性被應用程序在其大部分業務邏輯中修改。因爲它包含髒檢查(這是另一個選擇查詢來識別修改的字段)。當有20個字段並且只有很少的字段被修改時,這種動態更新是很好的(因爲可以在DML語句中添加少量列以獲得性能)。如果超過50%的字段被修改,那麼更新所有屬性是很好的。因此,開發人員決定只更新修改後的字段。

希望我的意見能幫助你理解這一點。如果我錯了,專家請糾正我。