为什么在Spring HibernateOperations中不推荐使用saveOrUpdateAll

Pet*_*iuk 7 java spring hibernate

看看源代码.

有可能是背后的正当理由,但它是奇怪的是,我所能做的hibernate.deleteAllhibernate.loadAll,但不hibernate.saveOrUpdateAll(相信我能做到,实际上,但是,如果这种方法已不意味着它会在下一版本中消失)

Man*_*uPK 11

原因很明显来自Java文档,

支持单个saveOrUpdate或合并用法

如您所见,该方法的实现,代码取自链接,

public void saveOrUpdateAll(final Collection entities) throws DataAccessException {
    executeWithNativeSession(new HibernateCallback() {
        public Object doInHibernate(Session session) throws HibernateException {
            checkWriteOperationAllowed(session);
            for (Iterator it = entities.iterator(); it.hasNext(); ) {
                session.saveOrUpdate(it.next());
            }
            return null;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

此方法使用较少,不能在您的交易中使用.因此,spring希望您迭代列表并保存单个对象.

loadAll()方法不同且有用.它与...不相似saveOrUpdateAll().

你是对你的观察结果deleteAll()是相似的saveOrUpdateAll(),我同意这是一个矛盾已被弃用,另一种是没有.