私optimistic locking
はJPAで勉強し@Version annotation
ました.DBにバージョン列を追加し、それがどのように管理されているかEntityManager
など
ドキュメントは、(私自身の言葉で)楽観的ロックはオブジェクトレベルで効果的であると述べています。バージョン定義がエンティティクラスにあるため、確かにそうであることがわかります。
これの意味は:
userA select row_A (db テーブルの行のみ)
userB select row_A
userA は、ユーザー名列の row_A を更新します (ここでバージョンが変更されます)
userB は、username 列の row_A を更新します (optimisticLockException がスローされます)
ここまでは順調ですね。
しかし、ステップ4で考えてみると、
userB update row_A of phoneNumber
例えば。
optimisticLockException がまだスローされることはわかっていますが、オブジェクト レベルではなく列レベルでロックする方法はありますか?
私にとっては、列レベルのロックがあればいいのですが、それが可能であっても、それがどのような不利益をもたらすかはわかりません。