2016-04-21 13 views
0

JPAプロバイダを変更する必要が生じた場合に備えて、SOSEの代わりにOLEを捕捉して休止状態に近づけないようにすることが望まれます。Hibernate 4でStaleObjectStateExceptionの代わりにOptimsticLockExceptionを取得するにはどうすればよいですか?

例外を生成しているケースは非常に簡単です。バージョニングされたエンティティの更新がコミットされる直前にブレークポイントを設定し、db内で直接変更をコミットしてから、実行を続行できるようにしました。

StaleObjectStateException vs OptimisticLockExceptionからは、「JPA注釈を使用する」と答えているようですが、これを実行しています。具体的には、問題のエンティティは、javax.persistenceからのみ注釈をインポートします。*

答えて

0

これは、EntityManagersではなく、Hibernate Sessionオブジェクトを使用していたためです - HibernateはJPAアノテーションをチェックしません。if EntityManagerが使用されている場合を除きます)。

DropWizardでSessionsが使用されているため修正できませんが、なぜこれが起こっているのか、一貫して起こることがわかったので、SOSEを捕まえるだけで問題は解決します。

関連する問題