0

JPAを使用してオプティミスティック・ロックを実装しようとしています。 @Versionアノテーションを持つバージョンを追加すると、暗黙的なオプティミスティック・ロックを適用できます。実装後、複数のユーザーが同じエンティティを更新しようとすると、更新が失われるのを防ぐことができます。更新が行われ、バージョンフィールドがエンティティのバージョンフィールドと一致しない場合、行が更新されず、更新が失われないようにします。永続エンティティが更新されたかどうかを確認する方法? Springトランザクション管理

私はエンティティを更新するためにエンティティフィールドを更新するだけで、データベース更新はSpringトランザクションマネージャによって処理されます。つまり、更新クエリを明示的に呼び出す必要はありません。

私の質問は、特定のユーザーに対して行われた更新が成功したかどうかをどのように知ることができるでしょうか。

答えて

0

OptimisticLockExceptionは、操作が失敗した場合、他のトランザクションが以前にエンティティを変更した場合にスローされます。詳細は、関連スレッド:レスポンスの

+0

感謝。はい、OLE例外がスローされます。しかし私の質問は、私がSpring Transaction管理を使用しようとしているので、更新やコミットを明示的に実行しないということでした。だから、どうすればこの例外をキャッチして適切な処置を取ることができますか? –

+0

http://stackoverflow.com/questions/17203452/how-to-catch-optimisticlockexception-in-jpaによると、呼び出されたメソッドの外部で処理することも、内部でentityManager.flush()を明示的に呼び出すこともできます。 – Justas

関連する問題