楽観ロック制御の有無を動的に切り替えたい
JPA(EclipseLink)を使っています。
「画面を開いてから更新操作をするまでに、他のユーザによってデータが変更されていた場合に、エラーとしてデータを再読込する」という仕様があり、そのために@Version
アノテーションによる楽観的ロックを利用しています。
その仕様の対象となるデータは、バージョン値を画面側まで持っていき、更新操作時に再びサーバに送りつけているわけです。
ただ、そのデータはバッチ処理でも更新されます。
バッチ処理側ではOptimisticLockExceptionを起こすことなく、問答無用で更新できるようにしたいです。
しかし、エンティティに@Version
アノテーションをつけてしまうと、常に楽観ロック制御されてしまいます。
【質問】
@Version
を使用した上で、楽観ロック制御するかどうかを動的に切り替える方法はありますか?
トランザクション単位で指定できれば、バッチ処理で実行するトランザクションでは楽観ロックをOFFにする、みたいに実装できるので、理想的です。
【環境】
Wildfly 10
Java 8