休眠合并删除记录



Hibernate正在管理类X。我们的代码加载了一个 X 数组,当我通过 update() 提交更改时,无论我是否对其进行了任何更改,我都会在 X 的第二个实例上得到可怕的 NonUniqueObjectException。merge() 不会抛出异常,而是删除除两个数组之外的所有数组。???我已经搜索了SO和其他网站,他们都说update()或saveOrUpdate()将处理处理,但事实并非如此。不知道什么会导致 merge() 删除任何内容。

根据您添加的代码 事务由休眠自动维护。 任何具体原因 为什么要将刷新模式设置为提交?

刷新模式的参考链接。在您的情况下,它只会在自动完成的事务提交时调用。

根据此链接,使用FlishMode玩不是个好主意

试试这个 - 我们告诉session.merge而不是hibernatetemplate.merge

Session hibSession = getHibernateTemplate().getSessionFactory().getCurrentSession();
hibSession.merge(myObject);
hibSession.flush();

最新更新