springboot使用mybatis事务失效(多数据源原因) 川长思鸟来 2021-12-17 11:49 2359阅读 0赞 1、springboot整合mybatis后,直接使用 **@EnableTransactionManagement ** 注解可以开启事务,然后代码中使用 **@Transaction **注解即可。 2、作者是使用了mybatis + neo4j俩个数据库,就导致了有俩个数据源,mysql发生异常后事务没有发生回滚,跟踪spring的事务代码后发现默认的事务管理器使用了neo4j的事务管理器,所以导致没有回滚mysql数据库的事务。 ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FtYXhpYW9jaGVu_size_16_color_FFFFFF_t_70][] 3、解决方法:在 **@Transaction** 注解里面可以指定事物管理器,但是需要手动配置mysql事务管理器的bean 配置类: package com.laibutec.app.config; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; @Configuration public class TransactionConfig { @Autowired DataSource dataSource; @Bean("transactionManager") public DataSourceTransactionManager jpaTransactionManager() { return new DataSourceTransactionManager(dataSource); } } 指定事务管理器: @Transactional(value = "transactionManager") 这样就可以使用mysql的事务管理器了,因为作者不需要使用neo4j的事务,所以直接使用mysql的事务管理器了。如果需要同时使用多个事务管理器,将不同的数据源配置到不同的事务管理器中,然后在 **@Transaction** 注解里面指定具体事务管理器即可。 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FtYXhpYW9jaGVu_size_16_color_FFFFFF_t_70]: /images/20211213/94b045f772a8488cad14dc8ee28c3e4c.png
相关 SpringBoot使用MyBatis 集成Atomikos 实现分布式事务 管理多数据源 1.项目结构: ![watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9sdWNpZmVyLmJsb £神魔★判官ぃ/ 2023年06月15日 13:29/ 0 赞/ 36 阅读
相关 springboot mybatis druid多数据源事务 springboot 多数据源配置,mybatis整合druid多数据源,springboot 事务配置 【订阅[专栏合集][Link 1],作者所有付费文章都能看】 文 Love The Way You Lie/ 2023年01月09日 12:40/ 0 赞/ 196 阅读
相关 Mybatisplus多数据源DS失效原因 1.方法上使用了事务导致失效。 2.使用了lambdaQuery()导致切换失效。 @RequestMapping("/test") private 今天药忘吃喽~/ 2022年10月08日 13:23/ 0 赞/ 98 阅读
相关 springboot mybatis 使用多数据源 ![多数据源][multi-database.png] [SpringBoot系列博客目录,含1.5.X版本和2.X版本][SpringBoot_1.5.X_2.X] sp 电玩女神/ 2022年05月23日 01:42/ 0 赞/ 420 阅读
相关 springboot + mybatis 多数据源 1:首先在springboot的 main启动类上加 // boot自带的DataSourceAutoConfiguration禁掉,因为它会读取applicatio ゞ 浴缸里的玫瑰/ 2022年05月18日 01:05/ 0 赞/ 228 阅读
相关 SpringBoot+MyBatis——多数据源 一,新建一个Maven项目搭建SpringBoot框架,引入MyBatis持久层与Druid连接池 1,新建一个Maven项目,继承springboot框架,引入 r囧r小猫/ 2022年02月03日 20:05/ 0 赞/ 329 阅读
相关 Springboot中嵌套事务失效原因分析 Springboot中嵌套事务失效原因分析 首先两个事务方法,其中一个调用另一个。 @Transactional(rollbackFor = Except 冷不防/ 2021年12月21日 11:49/ 0 赞/ 304 阅读
相关 springboot使用mybatis事务失效(多数据源原因) 1、springboot整合mybatis后,直接使用 @EnableTransactionManagement 注解可以开启事务,然后代码中使用 @Transact 川长思鸟来/ 2021年12月17日 11:49/ 0 赞/ 2360 阅读
相关 SpringBoot + MyBatis使用多数据源 SpringBoot + MyBatis使用多数据源 有时候我们需要在一个项目里面集成一个或者多个数据源。 实现的思想 使用`mybatis`持久层框架 阳光穿透心脏的1/2处/ 2021年10月14日 05:44/ 0 赞/ 459 阅读
还没有评论,来说两句吧...