ORDAにおける楽観的レコードロックは,内部的なスタンプに支えられていますが,トランザクション中に作成されたエンティティのインスタンスは,すべて同一のレコードからコピーされるので,スタンプの比較による排他制御は意味をなしません。
トランザクション中でなければ,dataClass.get()
のようなコマンドで同一レコードから複数のエンティティを作成した場合,一方をentity.save()
した後に他方をentity.save()
しようとすると「スタンプが変更されたので保存できない」というエラーが返されますが,トランザクション中であれば,同じことをしてもエラーが返されずに両方のエンティティが保存できます。これは仕様です。