2012-01-19 56 views
2

是否有可能在更新查詢中將實體的某些成員標記爲「忽略」?更新時可以忽略實體成員嗎?

我基本上有一個實體,可以更新。但並非實體的所有成員都可以更新一次。所以,當我使用Spring將表單數據綁定到我的實體時,表單中未公開的字段都具有空值。當實體更新時,映射列將其中寫入值寫入null

我已經把不可改變的值有隱藏的表單值,但我不認爲這是最好的解決方案。有更好的嗎?

謝謝。

回答

7

IMO的最佳解決方案是避免從表單字段重新構建實體的新實例。取而代之的是,取一個現有的,完全填充的實體實例,更改表單中字段的值,然後合併這個實體。

另一種方法是將列標記爲不可更新(使用@Column(updatable = false)),但這會使列在所有用例中不可更新,但我認爲這不是一個好主意,通常如果某些字段可能不會被某些用戶更改,但可能會被其他用戶或管理數據遷移工具更改,然後將該列設置爲不可更新將會很麻煩。