悲観的ロックを行うには、次のようにできると書かれている grails のドキュメントに従いました。
def plan = Plan.findWhere(user:user, [lock: true])
これにより、保存が完了するまで計画インスタンスがロックされます。私の場合、次のように複数の計画を一度にロックしたいと考えています。
def plan = Plan.findAllWhere(user:user, [lock: true])
私はデフォルトでトランザクションであるgrailsサービスでこれを行っていますが、上記の行は期待どおりに機能していません.すべての行をロックせずstale state exception
、同時トランザクションが実行されるとスローします.
読み取り時に複数の行をロックするにはどうすればよいですか?
詳細については、関連する質問を参照してください:データベースの古い状態の例外が発生する grails の同時トランザクション