2011-11-03 133 views
0

我目前使用的是hibernate的3.3版本。休眠:saveOrUpdateAll和事务

当前hibernate的设置是这样的,它会在每个对象的每个持久化之后自动提交。

我想包围一个事务,所以它只会在批处理结束后提交。

的代码是问题:

getHibernateTemplate().saveOrUpdateAll(collectionOfObject); 

我已征询文件here,但想看看是否有替代(不是重写它使用HSQL等)

编辑

我的目标是围绕一堆插入物进行交易。目前它是自动提交每个插入

+0

当您使用'saveOrUpdateAll'时,是否不将对象保存到数据库?为什么你仍然需要HSQL? – gigadot

+0

它是由文档建议的。 –

+0

我还是不明白。你有一个非常大的对象集合来保存?如果不是的话,为什么不在你链接的文件中尝试“天真的例子”?这正是你想要的,不是吗? – gigadot

回答

2

如果你想使用事务管理春天阅读here如何做到这一点。

此外,使用不应使用HibernateTemplate使用Session对象,而不是如下所示。

sessionFactory = getHibernateTemplate().getSessionFactory(); 
    Session session = sessionFactory.getCurrentSession(); 
    for (Bean bean : listBeans) { 
     session.saveOrUpdate(bean); 
    } 

因为没有办法在会话中一次保存集合。这将在方法退出后提交数据。