有什么方法可以从线程中删除/暂停当前的 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.
似乎可以解决问题的一种解决方法是在不同的线程中运行我自己的代码并等待它完成,然后再继续执行其余代码。
有没有更好的方法,看起来有点愚蠢/矫枉过正?以某种方式暂停当前休眠会话,然后打开一个新会话,然后恢复原始会话。