我有一個人表和Person.java映射到表。我有一個編輯用戶界面來更改個人記錄的詳細信息。在編輯頁面上,用戶通常每次更改1或2個字段。我正在使用AJAX發送更新調用,並且只想發送已更改的字段。目前發送整個對象。只更改字段的更新表
問題是在後端有關如何僅更新數據庫的更改字段。
UI層僅創建一個Person對象,只更改字段,其餘字段將被初始化。然後將該對象傳遞給DAO以進行持久化。 DAO如何知道哪些字段被更改?未初始化或故意將哪些字段設置爲空以進行更新。目前整個對象來了,所以我更新了所有的列。
這感覺就像一條走下坡路。爲什麼只更新數據庫中的特定字段?如果用戶將數據提交給表示整個對象的表單,則應更新整個對象。如果您逐字段更新,您將如何檢測並處理併發衝突? (例如,兩個用戶幾乎同時更新同一個人的不同字段,從每個用戶的角度來看,整個記錄是正確的,但以這種方式合併時,這是不正確的。) – David 2012-03-27 18:00:27
該記錄具有時間戳記,因此它將採用的併發性。 – 2012-03-28 04:03:48
記錄中的哪個字段的時間戳指示已更新?畢竟,用這種設計,用戶只更新了一些領域,而不是全部。因此,從審計跟蹤的角度來看,您會記錄用戶更新的數據,而用戶並未實際更新數據。 – David 2012-03-28 12:16:34