8.10 楽観的ロック
CJPAプロバイダでは,EntityManagerと永続化コンテキストを利用して永続化対象のエンティティを管理します。変更されたエンティティの情報は,flushメソッドまたはトランザクションのコミット処理が実行されたときにデータベースに反映されます。複数のトランザクションで同時にデータベースの同じ行を更新するおそれがある場合,データの整合性を保証する必要があります。データの整合性を保証するために,CJPAプロバイダでは楽観的ロックを提供しています。
楽観的ロックとは,データの更新処理を始めてから更新が完了するまでの間に,ほかから更新されていないことを確認するためのロック機能です。楽観的ロックはデータベースをロックしないので,デッドロックなどが発生しないという利点があります。
ここでは,楽観的ロックについて説明します。