4.11. ロック
JPA のデフォルトのロックシステムは、多くの場合、オプティミスティックロックに基づいています (つまり、バージョンカラムを使用して並行性の問題をチェックします)。JPA では、並行性の保証を強化するために追加のメカニズムが定義されています。
lock(Object entity) メソッドを使用して、該当するエンティティ (LOCK がカスケードされる場合は関連するエンティティを含む) に対してロックを適用できます。必要な並行性の保証に応じて、ロックモードを選択します。
LockMode.READは該当するエンティティのダーティな読み取りと繰り返し不可能な読み取りを防ぎます。LockMode.WRITEは該当するエンティティのダーティな読み取りと繰り返し不可能な読み取りを防ぎ、バージョン番号 (存在する場合) を増加させます。