古典的なシナリオがあります: このレコードからの以前に準備された値に基づく同じレコードへの 2 つの更新。私は楽観的並行性を前提として作業しています。条件付き更新を自分で実装するのは難しくありません。問題は、それを処理するドライバーまたは DB の特定の API に依存できるかどうかです。
当然、私はそれをグーグルで検索しましたが、コードサンプルについて言及せずに、楽観的同時実行とは何かの説明しか思い浮かばないようです...
JDBC データダイレクトドライバーを使用しています。
ありがとう!
古典的なシナリオがあります: このレコードからの以前に準備された値に基づく同じレコードへの 2 つの更新。私は楽観的並行性を前提として作業しています。条件付き更新を自分で実装するのは難しくありません。問題は、それを処理するドライバーまたは DB の特定の API に依存できるかどうかです。
当然、私はそれをグーグルで検索しましたが、コードサンプルについて言及せずに、楽観的同時実行とは何かの説明しか思い浮かばないようです...
JDBC データダイレクトドライバーを使用しています。
ありがとう!
いいえ、JDBC はオプティミスティック コンカレンシーをサポートしていません。versionオプティミスティック コンカレンシーは、テーブルに専用の列を使用し、更新が行われるたびにバージョン値をインクリメントすることにより、JPA によって処理されます。更新クエリは次のようになります。
update foo set ..., version = version + 1
where id = :theId and version = :theVersionLoadedInMemory
1 ではなく 0 が返された場合executeUpdate()は、他の誰かがレコードを削除したか、更新してバージョンを増やしたことを意味します。