2016-04-21 27 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並解決問題。

相關問題