2016-04-21 59 views
0

我们希望捕捉OLE而不是SOSE,以便在需要更改JPA提供程序的情况下与Hibernate的耦合更少。如何在Hibernate 4中获得OptimsticLockException而不是StaleObjectStateException?

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

它看起来像从StaleObjectStateException vs OptimisticLockException答案应该是“使用JPA注释”,但我们正在这样做。特别是,有问题的实体只从javax.persistence中导入注释。*

回答

0

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

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

相关问题