有什麼辦法從線程中刪除/掛起當前的spring管理的hibernate會話,以便可以使用新會話,然後將原始會話放回線程?兩者都在研究相同的數據源。「暫停」由spring事務管理器管理的休眠會話
更詳細地描述問題。我試圖爲擁有自己的spring hibernate事務管理的工具創建一個插件。在這個插件中,我想做一些我自己的數據庫的東西,這是在我們自己的spring事務管理器上完成的。當我現在嘗試執行數據庫操作我們的事務管理器開始抱怨了不兼容的事務管理器已被使用
org.springframework.transaction.IllegalTransactionStateException: Pre-bound JDBC Connection found! HibernateTransactionManager does not support running within DataSourceTransactionManager if told to manage the DataSource itself. It is recommended to use a single HibernateTransactionManager for all transactions on a single DataSource, no matter whether Hibernate or JDBC access.
,似乎這樣的伎倆運行自己的代碼在不同的線程和等待解決辦法在繼續執行其他代碼之前完成。
那麼有沒有更好的辦法,看起來有點愚蠢/矯枉過正?一些暫停當前休眠會話的方法,然後打開一個新的會話並恢復原來的會話。
這樣做的問題是,他們用自己的代碼段包裝sessionfactory和transactionmanager。另一個問題是,我們沒有任何方法將我們的hbm映射添加到他們正在使用hibernate事務管理器的事務管理器 – user1344117 2012-07-13 05:04:55
中? – 2012-07-13 13:19:04
spring事務管理器用自己編寫的一些代碼包裝 – user1344117 2012-07-17 08:11:48