Java 休眠:分离父级和所有子级
我有这样一个对象树: Foo->(许多)酒吧->Baz 我想让它们都是暂时的,但在Foo上调用detach只会分离Foo。我也不想取消会议,因为会议中可能还有其他事情需要保留Java 休眠:分离父级和所有子级,java,hibernate,orm,Java,Hibernate,Orm,我有这样一个对象树: Foo->(许多)酒吧->Baz 我想让它们都是暂时的,但在Foo上调用detach只会分离Foo。我也不想取消会议,因为会议中可能还有其他事情需要保留 有没有办法避免树上到处都是蜘蛛?或者,在加载Foo的原始查询中,是否有一种方法可以表示不应附加任何返回的对象?Hibernate的detach方法就是这样做的: public void detach(Object entity) { try { getSession().evict( entity
有没有办法避免树上到处都是蜘蛛?或者,在加载Foo的原始查询中,是否有一种方法可以表示不应附加任何返回的对象?Hibernate的detach方法就是这样做的:
public void detach(Object entity) {
try {
getSession().evict( entity );
}
catch ( HibernateException he ) {
throw convert( he );
}
}
它或多或少是这样的:你已经拥有了这个对象,所以,让我们把它从会话中逐出,让它分离。您可以对该属性执行级联execute
,这样当Foo
被逐出时,Bar
也被逐出,Baz
也被逐出。为了避免LazyInitializationException
您需要保证它们都已加载(可能FetchType-EAGER
?)
对于3.5,您有可用于此目的的CascadeType
DETACH
: