4

オブジェクトに対してmerge()を呼び出すと、オブジェクトは管理されません。代わりに、同じエンティティの管理対象インスタンスへの参照が返されます。この背後にあるロジックは何ですか?いくつかの設定でこの動作を変更する(そしてオブジェクトを管理する)方法はありますか?OpenJPA2.2を使用しています。ありがとうございました。

4

1 に答える 1

3

重要なのは、merge()がオブジェクトをEntityManagerコンテキストにアタッチしておらず、アタッチされたオブジェクトを返しているということです。したがって、次の場合:

AEntity a2 = entityManager.merge(a1);

a1は管理されないままですが、a2は管理されます。

ちなみに、これは、マージによって副作用が発生せず、渡されたオブジェクトの状態が変更されないため、賢いアプローチです。

于 2012-05-19T08:21:08.863 に答える