gpt4 book ai didi

java - HIbernate:分离父级和所有子级

转载 作者:行者123 更新时间:2023-12-01 05:15:35 25 4
gpt4 key购买 nike

我有一个像这样的对象树:

Foo->(许多)Bar->Baz

我想让它们都是暂时的,但在 Foo 上调用 detach 只会分离 Foo。我也不想清除 session ,因为 session 中可能还有其他内容需要保留。

有没有一种方法可以避免蜘蛛爬满树?或者在加载 Foo 的原始查询中是否有一种方法可以表明不应附加任何返回的对象?

最佳答案

Hiberante 的 detach 方法就是这样做的:

public void detach(Object entity) {
try {
getSession().evict( entity );
}
catch ( HibernateException he ) {
throw convert( he );
}
}

它或多或少类似于:您已经拥有该对象,因此,让我们将其从 session 中逐出,使其分离。你能做的是级联 EVICT在这个属性上,所以当 Foo被驱逐Bar也被驱逐了,Baz 也被驱逐了。以免LazyInitializationException你需要保证它们都已加载(也许FetchType EAGER?)

<小时/>

对于 3.5,您拥有 CascadeType DETACH ,可用于此目的:http://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/annotations/CascadeType.html

关于java - HIbernate:分离父级和所有子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11274485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com