【问题标题】:How can I get an OptimsticLockException instead of a StaleObjectStateException in Hibernate 4?如何在 Hibernate 4 中获得 OptimsticLockException 而不是 StaleObjectStateException?
【发布时间】:2016-08-15 06:15:35
【问题描述】:

希望在我们需要更改 JPA 提供程序的情况下,捕获 OLE 而不是 SOSE,以减少与休眠的耦合。

产生异常的情况非常简单;我在提交版本化实体更新之前设置了断点,直接在数据库中提交了更改,然后允许继续执行。

StaleObjectStateException vs OptimisticLockException 看来,答案应该只是“使用 JPA 注释”,但我们正在这样做。具体来说,相关实体仅从 javax.persistence.*

导入注释

【问题讨论】:

    标签: java hibernate jpa


    【解决方案1】:

    事实证明,这是因为我们使用的是 hibernate Session 对象而不是 EntityManager - Hibernate 不会检查 JPA 注释(如果存在则将 SOSE 包装在 OLE 中),除非正在使用 EntityManager。

    我们无法修复它,因为 DropWizard 使用 Sessions,但现在我们了解了为什么会发生这种情况并且它会一直发生,我们可以捕获 SOSE 并解决问题。

    【讨论】:

      猜你喜欢
      • 2014-10-21
      • 2014-04-15
      • 2021-12-10
      • 2015-08-04
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 2015-06-22
      相关资源
      最近更新 更多