sql >> データベース >  >> RDS >> Mysql

Hibernateの楽観的なロック..どのように機能しますか?

    正確には、楽観的ロックを意味するのではなく、楽観的同時実行性(ロックなし)を意味します。バージョンにタイムスタンプを使用するのは、レガシーデータベースのサポートのためだけです。これは、最新のデータベースが(少なくとも理論的には)格納の精度よりも高速に動作するためです。タイムスタンプ。

    整数バージョンプロパティの使用は非常に簡単です:

    • 挿入時:バージョンを1に設定
    • 更新および削除時:バージョンを1に増やし、「where [email protected]」を追加します。 "すべてのSQLステートメントに。変更されたレコードの数を返します。変更されたレコードの数が予想と異なる場合は、StaleObjectStateExceptionをスローします。

    個人的には、レガシーでない状況で同じデータを書き込む2つの別個のアプリケーションを作成することはありません。これは、ビジネスロジックを複製し、変更を2つのアプリケーションに適用する必要があることを意味します。また、変更が1つだけに関連する場合も同様です。アプリケーション。




    1. mySQL:配列へのサブクエリ?

    2. SELECT + WHEREクエリをINSERTクエリと組み合わせるにはどうすればよいですか?

    3. Python3 mysqlclient-1.3.6(別名PyMySQL)の使用法?

    4. 'autoReconnect=true'でもMySqlJDBCタイムアウト