Mybatis和Spring集成 sessionFactory.openSession() 事务不生效问题
Posted starjuly
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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() 事务不生效问题的主要内容,如果未能解决你的问题,请参考以下文章