Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 休眠:分离父级和所有子级_Java_Hibernate_Orm - Fatal编程技术网

Java 休眠:分离父级和所有子级

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->(许多)酒吧->Baz

我想让它们都是暂时的,但在Foo上调用detach只会分离Foo。我也不想取消会议,因为会议中可能还有其他事情需要保留


有没有办法避免树上到处都是蜘蛛?或者,在加载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