我有一個應用程序,廣泛使用編輯框架。現在我已經開始添加一項新功能了:如果用戶編輯實體,我想記錄哪些更改已經完成,並將它們存儲在單獨的數據存儲實體中。這需要知道一個字段是否已更改,字段名稱以及其更改的值。GWT編輯:如何記錄對字段和子編輯器的更改? (RequestFactory?)
這是想什麼,我來實現:
- 應用程序調用編輯(豆);
- 用戶進行更改,調用flush()並將數據發送回服務器。
- 在服務器處理程序中,來自bean的更改發送到
processChanges(List<String> paths)
,然後processChanges(List<String> paths)
創建並存儲「field foo」更改爲「bar」的記錄,依此類推。 - 實體被保存,覆蓋現有實體。
我使用GWTP並且當前使用RPC命令模式。我已經讀了一些關於RequestFactory的信息,據我瞭解,它的主要優點之一是它只將名爲「deltas」的已更改字段發送回服務器以最小化有效負載,所以我想知道是否使用RequestFactory更適合我的應用程序?
道歉 - 我一直在閱讀GWT文檔和Javadocs編輯框架和RequestFactory,但我仍然很困惑。 RequestFactoryEditorDriver.getPaths()似乎可能是我需要的,但任何建議或指針非常讚賞。
我可能會觀察客戶端的變化,但這似乎是一個壞主意。
我沒有看到100%這與GWT編輯器或GWT有什麼關係。 聽起來更像是數據庫/數據存儲問題的重組,例如,保存實體的歷史。 – 2014-10-27 13:48:12
我想你誤解了我的問題。在我調用'EditorDriver.flush()'時,如何重構我的模式以幫助我找出哪些字段的內容已更改?我重新保存同一個實體,而不是每次都創建一個新副本,因此需要單獨記錄更改。 – slugmandrew 2014-10-27 14:07:13