本文主要是介绍Mybatis和Spring集成 sessionFactory.openSession() 事务不生效问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题描述
- Mybatis和Spring集成,查阅官方文档,得知Spring总会为你处理事务。
- 官方文档连接:http://mybatis.org/spring/zh/transactions.html
- 其中描述到:
- MyBatis 的 SqlSession 提供几个方法来在代码中处理事务。但是当使用 MyBatis-Spring 时,你的 bean 将会注入由 Spring 管理的 SqlSession 或映射器。也就是说,Spring 总是为你处理了事务。
- 无论 JDBC 连接是否设置为自动提交,调用 SqlSession 数据方法或在 Spring 事务之外调用任何在映射器中方法,事务都将会自动被提交。
解决方案
- 根据文档,有以下的解决方案:
- 先开启Spring事务功能,在 Spring 的配置文件中创建一个 DataSourceTransactionManager 对象:
@Bean
public DataSourceTransactionManager transactionManager() {
这篇关于Mybatis和Spring集成 sessionFactory.openSession() 事务不生效问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!