クライアント側でトランザクション中にオブジェクト型フィールドを何度か更新した場合,entity.save(dk
auto merge)
が成功しないことがあります。
クライアント/サーバー版のORDAでは,トランザクションを確定またはキャンセルした後,サーバー側で更新されたエンティティを明示的にリロードする必要があるかもしれません。たとえば,クライアント側でトランザクション中にエンティティを更新した場合,その時点ではクライアント側にあるエンティティのスタンプ値はインクリメントされておらず,古いスタンプ値のままとなっています。そのようなときは,一旦,トランザクションを確定またはキャンセルした後,エンティティを保持している変数にNull
をセットする,dataClass.get()
entity.reload()
などの方法で最新のエンティティをサーバーからリロードした上で次のトランザクションを開始することができます。