JPA / Hibernate - Отсоединение сущности от дочерних

Я использую JPA 2 с Hibernate 3.6.8 в качестве реализации.

Допустим, у нас есть объект Foo

@Entity
public class Foo {
    ....
    @OneToOne
    private Bar bar;

    ....
}

Мне нужно отделить весь граф объекта от сеанса, и когда я сделал entityManager.detach (foo) , я был удивлен, что панель осталась прикрепленной, что, по ИМО, довольно противоречит интуиции.

Читая документацию по EntityManager , выяснилось, что это ожидаемый случай, поскольку он ничего не упоминает об ассоциациях / дочерних объектах:

Удалите данный объект из контекста сохранения, вызывая управляемый объект отключается. Незаполненные изменения, внесенные в объект, если таковые имеются (включая удаление объекта), не будут синхронизироваться с базой данных. Сущности, которые ранее ссылались на отделенный объект, будут продолжать ссылаться на него.

Я также могу просто вызвать entityManager.detach (foo.getBar ()) , но это означает, что если я добавлю какие-либо ассоциации позже, мне придется убедиться, что они тоже отсоединены вручную.

Есть ли удобный способ добиться этого, не прибегая к размышлениям?

5
задан Asa 18 January 2012 в 07:44
поделиться