SELECT ...
とを区別するシステムを実装していますSELECT ... FOR UPDATE
。
通常SELECT ...
はエンティティを読み取るために使用され、エンティティは「正しくない」状態になることが許可されています (正しくない = 直後に更新される可能性があります)
はSELECT ... FOR UPDATE
、オブジェクトを編集する目的でオブジェクトを読み取るために常に使用されるため、オブジェクトの正しい状態を返す必要があります。
今、私は次のことをしようとしています: オブジェクトがステートメントによって読み取られるたびに、同じオブジェクトに対する他のクエリをSELECT ... FOR UPDATE
ロックします。SELECT ... FOR UPDATE
ただし、通常SELECT ...
は引き続き機能するはずです。
定義済みのロックだけを使用してこれを行う方法はありますか? データベースの分離レベルを見ましたが、それが私の問題の一部ではないと思います。
私はJava、休止状態、およびSQLデータベースを使用しています。