Java Hibernate在内存更改中回滚

Java Hibernate在内存更改中回滚,hibernate,transactions,rollback,in-memory,Hibernate,Transactions,Rollback,In Memory,我使用Hibernate保存内存中的数据。有时Hibernate由于某些错误而拒绝提交对象中的更改,并执行回滚。在这种情况下,我的内存数据变得不一致,我需要它已经回滚 我的问题是:是否有任何规范/实现可以帮助我跟踪和撤消内存中的更改。在尝试自己编写此代码之前,我想确定我不会发明轮子。在内存中回滚对象是不可能的。但正确的数据在数据库中,因此您只需忘记内存中的数据,并从数据库中获取它们的新副本: 从数据库中获取foo 在内存中修改foo 尝试在数据库中提交事务以更新foo:异常 再次从数据库中获取f

我使用Hibernate保存内存中的数据。有时Hibernate由于某些错误而拒绝提交对象中的更改,并执行回滚。在这种情况下,我的内存数据变得不一致,我需要它已经回滚


我的问题是:是否有任何规范/实现可以帮助我跟踪和撤消内存中的更改。在尝试自己编写此代码之前,我想确定我不会发明轮子。

在内存中回滚对象是不可能的。但正确的数据在数据库中,因此您只需忘记内存中的数据,并从数据库中获取它们的新副本:

  • 从数据库中获取
    foo
  • 在内存中修改
    foo
  • 尝试在数据库中提交事务以更新
    foo
    :异常
  • 再次从数据库中获取
    foo

  • 谢谢你,JB。您的解决方案很简单,但实现起来并不容易,因为我没有跟踪应用程序中的所有持久对象。我真正想要的是一种方法,可以跟踪对象按哪个顺序进行了哪些更改,并以相反的顺序撤消所有更改,通知其他软件组件。我想知道是否有一些API/实现可以开始。