我使用Hibernate將幾個Java類映射到數據庫,如Customer,Assessment,Rating ...。 現在我正在考慮對持久數據進行所有更改的歷史模式。該應用程序是一個Web應用程序。在刪除(或編輯)數據的情況下,其他用戶應該有可能看到更改並撤消它。由於這些更改超出了當前會話的範圍,因此我不知道如何解決此類問題,如Command模式,建議用於撤消功能。實現O/RM系統(Hibernate)的長期歷史模式的最佳實踐?
對於單值編輯,像這樣的question的方法聽起來沒問題。但是刪除整個持久實體呢?最簡單的方法是在表格中創建一個標誌,如果這個客戶被刪除了。最複雜的方法是爲存儲已刪除實體的每個類創建一個表。之間有什麼?我怎樣才能將這兩件事整合到一個O/RM系統中(在我的情況下是Hibernate),而又不會因爲SQL(我想避免因爲可移植性)而煩惱,並且仍然有足夠的靈活性?
是否有一個最佳做法?
你的方法聽起來很有趣,我有兩個問題:1)你在哪裏存儲這個版本號?在th e實體本身的表格或單獨的表格2)您如何避免與不明確的主鍵衝突,這些不同的實體應始終具有相同的鍵?謝謝 – maerch 2008-10-15 16:17:53