2011-11-03 287 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); 
    } 

因爲沒有辦法在會話中一次保存集合。這將在方法退出後提交數據。