正確には、楽観的ロックを意味するのではなく、楽観的同時実行性(ロックなし)を意味します。バージョンにタイムスタンプを使用するのは、レガシーデータベースのサポートのためだけです。これは、最新のデータベースが(少なくとも理論的には)格納の精度よりも高速に動作するためです。タイムスタンプ。
整数バージョンプロパティの使用は非常に簡単です:
- 挿入時:バージョンを1に設定
- 更新および削除時:バージョンを1に増やし、「where [email protected]」を追加します。 "すべてのSQLステートメントに。変更されたレコードの数を返します。変更されたレコードの数が予想と異なる場合は、StaleObjectStateExceptionをスローします。
個人的には、レガシーでない状況で同じデータを書き込む2つの別個のアプリケーションを作成することはありません。これは、ビジネスロジックを複製し、変更を2つのアプリケーションに適用する必要があることを意味します。また、変更が1つだけに関連する場合も同様です。アプリケーション。