2016-01-22 34 views
3

給出一些上下文 - 我將我的數據庫遷移到其他不支持Hibernate查詢的平臺上。由於有很多地方使用Hibernate概念,因此我計劃在DAO層更改load(),save()delete()函數以處理新數據庫,而不是在服務層進行更改。但是,一個問題是,當一個事務被提交時,Hibernate會自行保存。我怎樣才能避免這種情況?如何防止在事務提交時保存到Hibernate數據庫?

當在Hibernate中提交事務時,會話中的持久實體被保存到數據庫中。由於我使用Spring的@Transactional註釋,因此我無法控制這一點。我的要求是我想阻止Hibernate將對象保存到數據庫中,並使用@Transactional註釋在類中使用DAO自己保存對象。另外,我閱讀了關於Hibernate的無狀態會話,所以使用它們是個好主意,因爲我沒有保存任何會話?我閱讀了這篇文章,但找不到具體的解決方案。一些Hibernate + Spring專家可以在這方面提供幫助嗎?

+0

其他什麼平臺?你在使用什麼持久性API? –

+0

矩陣數據庫這是nosql,我現在使用JDBC – Anonymous

+0

我正在遷移到Matrix數據庫這是NoSql和截至目前我正在使用JDBC – Anonymous

回答

0

如果數據庫不支持Hibernate可能是最好的解決方案是拋出休眠和只使用spring + jdbc模板,所以你有完全控制它。

+0

有很多地方使用它,此外它本身提供了事務和會話的功能,所以只是想圖出一些辦法不行。 – Anonymous

2

你需要切換到手動沖洗:

sessionFactory.getCurrentSession().setFlushMode(FlushMode.MANUAL); 
相關問題