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() 事务不生效问题的主要内容,如果未能解决你的问题,请参考以下文章

4.Spring集成MyBatis

Spring集成Mybatis3

Java--Spring和MyBatis集成

spring和mybatis集成,自动生成modelmapper,增加mybatis分页功能

Mybatis与Spring集成时都做了什么?

spring boot 和 mybatis集成