2014-02-19 39 views
8

我正在使用Hibernate 3.2.6。而且我現在面臨異常getHibernateTemplate()。flush()和getSession()之間有什麼不同。flush()

保存的瞬態的實例沖洗

在我的代碼,有時我們使用getSession().flush()和某個時候,我們在一個事務中使用getHibernateTemplate().flush()之前。

你能告訴我這兩者有什麼區別嗎?

+0

http://stackoverflow.com/q/10836265/1031945 –

+1

如果鏈接的問題回答了您的問題,請刪除賞金以便a)您不會失去您的聲望,並且b)可以關閉此問題。 –

回答

9

HibernateTemplate已棄用Spring代碼從Spring移到註解之前的日子作爲事務管理的首選方法。它不是Hibernate本身的一部分。模板代碼抽象出創建,提交和回滾事務的機制,使開發人員可以專注於其業務邏輯。 HibernateTemplate的現在被認爲是由Spring社區是多餘的,並已在Spring的支持被完全刪除了對Hibernate 4.

從官方文檔:

注意:由於Hibernate的3.0.1的,事務性的Hibernate訪問代碼也可以用普通的Hibernate風格編碼。因此,對於新開始的項目,請考慮採用基於SessionFactory.getCurrentSession()的標準Hibernate3編碼風格的數據訪問對象。

在轉換過程中,您的代碼很可能是遺留代碼混雜的混合方法。

相關問題