2012-09-03 44 views
2

我使用Hibernate來保存我的內存數據。有時Hibernate拒絕提交由於某些錯誤而導致的對象更改,並執行回滾。在這種情況下,我的內存數據變得不一致,我需要它也回滾。Java Hibernate在內存變化中的回滾

我的問題是:是否有任何規範/實現來幫助我跟蹤和撤銷內存中的更改。在嘗試自己寫這些代碼之前,我想確定我不會發明一個輪子。

回答

0

回滾內存中的對象是不可能的。但是正確的數據在數據庫中,所以你只需要忘記你的內存中的數據,並從數據庫中獲取他們的新副本:

  1. 從數據庫
  2. 修改foo在內存
  3. 獲取 foo
  4. 嘗試提交事務數據庫更新foo:異常
  5. 從數據庫爬不起來foo
+0

謝謝,JB。你的解決方案是跨進式的,但並不容易實現,因爲我沒有跟蹤應用程序中的所有持久化對象。我真正需要的是一種跟蹤按照哪種順序對我的對象所做的更改的方法,並以相反順序撤銷所有更改,通知其他軟件組件。我想知道是否有一些API /實現開始。 – Vladimir