SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1f1f2ea1] was not registered for synchronization because synchronization is not active JDBC Connection [HikariProxyConnection@299422514 wrapping com.mysql.cj.jdbc.ConnectionImpl@a462fa3] will not be managed by Spring
时间: 2024-02-25 09:59:47 浏览: 89
mybaits非配置原因,导致SqlSession was not registered for synchronization异常
5星 · 资源好评率100%
这个警告信息通常是在使用 Spring 管理事务时出现的。它提示 SqlSession 没有注册到 Spring 的事务管理器中,因此事务管理器无法对它进行管理。这意味着当事务提交或回滚时,SqlSession 将不会被自动关闭,可能会导致数据库连接泄漏或资源浪费。
要解决这个问题,可以在 Spring 配置文件中配置事务管理器,并将 SqlSession 注册到事务管理器中。以下是一个示例配置:
```xml
<!-- 配置事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置 SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 配置 SqlSessionTemplate -->
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSessionFactory"/>
</bean>
<!-- 将 SqlSession 注册到事务管理器中 -->
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg index="0" ref="sqlSessionFactory"/>
<constructor-arg index="1" value="BATCH"/>
</bean>
<!-- 配置事务注解支持 -->
<tx:annotation-driven transaction-manager
阅读全文