Hibernate合并删除记录

时间:2018-03-19 03:16:53

标签: hibernate

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

1 个答案:

答案 0 :(得分:1)

根据您添加的代码 事务由Hibernate自动维护。 任何具体原因为什么要将FlushMode设置为Commit?

FlushMode的参考link。在您的情况下,它将仅在事务提交时被调用,这将自动完成。

根据这个link,使用FlishMode

并不是一个好主意

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

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