4
私は実装としてHibernate 3.6.8とともにJPA 2を使用しています。JPA/Hibernate - 子と一緒にエンティティをデタッチする
我々は実体を持っているとしましょうFoo
entityManager.detach(foo)
を行うとき、私はIMOはかなりカウンター直感的である、
bar
が付着したままということに驚きました
@Entity
public class Foo {
....
@OneToOne
private Bar bar;
....
}
。 EntityManager
上のドキュメントを読ん
、団体/子entitesについては何も言及していないので、これは予想される場合であることが表示されます:
管理エンティティを引き起こし、永続コンテキストから指定されたエンティティを削除します切り離される。エンティティの削除(エンティティの削除を含む)があった場合、そのエンティティに対して行われたフラッシュされていない変更は、データベースに同期されません。以前に分離されたエンティティを参照したエンティティは、それを引き続き参照します。
私は単純にentityManager.detach(foo.getBar())
を呼び出すこともできますが、後でアソシエーションを追加すると、それらも手動で切り離されていることを確認する必要があります。
リフレクションに頼ることなくこれを達成する便利な方法はありますか?
...美しい:)を。 JBに感謝します。 – Asa