4D-jp 4D Japan Technical Support Team

トランザクション中のロックスタンプ

2021-03-14

ORDAにおける楽観的レコードロックは,内部的なスタンプに支えられていますが,トランザクション中に作成されたエンティティのインスタンスは,すべて同一のレコードからコピーされるので,スタンプの比較による排他制御は意味をなしません。

トランザクション中でなければ,dataClass.get()のようなコマンドで同一レコードから複数のエンティティを作成した場合,一方をentity.save()した後に他方をentity.save()しようとすると「スタンプが変更されたので保存できない」というエラーが返されますが,トランザクション中であれば,同じことしてもエラーが返されずに両方のエンティティが保存できます。これは仕様です。

Stamp has changed and Transaction


関連記事

リンク