gpt4 book ai didi

java - 从 hibernate session 中删除对象?

转载 作者:行者123 更新时间:2023-11-30 05:11:17 25 4
gpt4 key购买 nike

Possible Duplicate:
Spring + Hibernate : a different object with the same identifier value was already associated with the session

我已经使用 hibernateTemplate find by id 从数据库加载了一个对象 X,然后我从该对象中获取了一些属性,并将其添加到另一个相同类型的对象 Y 中,该对象也由相同的 X id 加载。然后当我尝试 saveOrUpdate对象 Y,hibernate 抛出异常具有相同标识符值的不同对象已与 session 关联,我认为这意味着对象 X 与同一 session 中的该属性关联,因此 Y 不能被保存或更新并影响该属性。

如何从 session 中删除对象 X,使其不再与该属性关联

我尝试使用合并而不是 saveOrUpdate它工作正常,但它与 saveOrUpdate 相同吗? ?我的意思是我可以依靠它来添加新记录或更新它们吗?

最佳答案

经过多次尝试,我发现使用合并是有效处理此问题的最佳方法,并且要处理要保存的新实例,我认为最好的方法是这样做:

if (X.getId() != null) {
return hibernateTemplate.merge(X);
} else {
hibernateTemplate.saveOrUpdate(X);
}

因此,如果它是要 session 的新实例,则将通过 saveOrUpdate 完成,如果它是同一行的重复实例,则将使用合并进行处理。

关于java - 从 hibernate session 中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3288838/

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