Java サービスで一連のテーブルの読み取りを使用するシナリオがあります。サービス クラス @Transactional に注釈を付けました。
トランザクションで使用するすべてのテーブルで、読み取った対応する行をロックし、トランザクションの最後に解放する方法はありますか?
Ps: 私は春の Hibernate を使用していますが、このロックの概念は初めてです。資料/例のリンクは非常に役立ちます
ありがとう
Java サービスで一連のテーブルの読み取りを使用するシナリオがあります。サービス クラス @Transactional に注釈を付けました。
トランザクションで使用するすべてのテーブルで、読み取った対応する行をロックし、トランザクションの最後に解放する方法はありますか?
Ps: 私は春の Hibernate を使用していますが、このロックの概念は初めてです。資料/例のリンクは非常に役立ちます
ありがとう
これは、基盤となるデータベース エンジンと選択したトランザクション分離レベルによって異なります。一部のデータベース システムは読み取りのロックを行い、一部は MVCC を使用します。つまり、トランザクションが終了し、トランザクションがトランザクションの開始時に取得されたデータのスナップショットで動作するまで、更新は他のトランザクションに表示されません。
したがって、簡単な答えは次のとおりです。必要に応じて適切に高いトランザクション分離レベル (SERIALIZABLE など) を選択し、それをサポートするデータベース エンジンを選択します。