我們正在嘗試從Spring3/Hibernate3升級到Spring4/Hibenate4。我們看到的其中一個問題是,在Hibernate3中,當實體從服務層以服務方法周圍的事務邊界獲取時,實體沒有用於延遲加載屬性的活動打開會話。事務管理器用於調用SpringSessionSynchronization的afterCompletion來取消所有會話。如何關閉事務邊界後的休眠會話
現在使用spring4 + hibernate4組合,我們看到實體回來時會在其上啓動活動的打開會話。事務管理器現在調用SpringFlushSynchronization而不是SpringSessionSynchronization,它在執行提交後不會執行任何操作。那麼現在情況是,當與舊的會話實體被傳遞到另一個服務電話與一個單獨的事務邊界,它是由錯誤滿足:
Illegal attempt to associate a collection with two open sessions
注意,事務管理器在我的情況下,使用JTA如果這是相關的。 Spring現在的工作方式有什麼變化,正在產生這種行爲上的變化 - 是否有解決問題的補救措施?
您使用哪個版本的bitronix? bitronix/sprng/hibernate4/5有問題嗎? – rdm 2016-04-26 20:35:25