2014-12-05 39 views
0

我在如何維護JSF中實體的狀態方面苦苦掙扎。具體來說,可以說我想對其中一個執行簡單的CRUD操作。我將一組實體的屬性綁定到一個表單,我在表單中做了一些更改,但是隨後我取消了它。我的頁面在服務器上的bean中的實體仍然被修改。 (假設用戶界面實際上將表單數據提交回來,因爲它在編輯它時使用了一些動作監聽器來更新表單)。在JSF中還原修改的實體的最佳實踐?

人們如何處理將實體還原到其原始狀態?

  • 您是否總是在將它們綁定到表單之前備份/克隆您的實體?這在編程上看起來像很多工作。
  • 或者當您取消時,您是否總是從數據庫中重新獲取數據?這似乎是對數據庫操作的浪費。

只是想知道我是否錯過了一些東西。

回答

1

大概克隆實體&然後更新它是一個更好的方法。

以這種方式,您可以保留您的初始值&可以做比較/驗證等,如果需要的話。在某些情況下向最終用戶顯示他/她所做的更改;更多使用案例涉及審計等。

此外,當您已經獲取該實體時,不建議返回數據庫。

+0

對,唯一的問題是不得不爲我們使用的每個實體編寫一個克隆操作......而且我們有很多這樣的操作。 – wsaxton 2014-12-06 18:36:09

+0

@wfsaxton我認爲有幾個庫可用於克隆一個對象,你嘗試,因爲你有很多的實體;可能會避免爲每個人執行。 – 2014-12-06 18:48:49