【问题标题】:Java Hibernate rollback in memory changesJava Hibernate 在内存更改中回滚
【发布时间】:2012-08-28 00:50:15
【问题描述】:

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

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

【问题讨论】:

    标签: hibernate transactions rollback in-memory


    【解决方案1】:

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

    1. 从数据库中获取foo
    2. 在内存中修改foo
    3. 尝试提交事务以更新数据库中的foo:异常
    4. 再次从数据库中获取foo

    【讨论】:

    • 谢谢,JB。您的解决方案是直截了当的,但实现起来并不容易,因为我没有跟踪我的应用程序中的所有持久对象。我真正想要的是一种方法来跟踪我的对象以什么顺序进行了哪些更改,并以相反的顺序撤消所有更改,通知其他软件组件。我想知道是否有一些 API/实现可以开始。
    猜你喜欢
    • 2011-01-03
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多