Spring boot事务无效报错:Transaction not enabled问题排查解决

 更新时间:2023年11月27日 09:14:00   作者:clooker  
在业务代码中经常需要保证事务的原子性,但是有的时候确实是出现事务没有生效,这篇文章主要给大家介绍了关于Spring boot事务无效报错:Transaction not enabled问题排查的相关资料,需要的朋友可以参考下

问题描述

使用spring boot + mybatis plus时添加的事务不生效,并且有些方法操作会出现如下异常:

c.a.m.s.i.SubscriptionsStatsServiceImpl [SqlHelper.java : 179] SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7f63bdb9] Transaction not enabled

问题排查

追踪SqlHelper类,找到报错的位置,如下:

可以看到只有批量插入才会报错,单条插入不报错。报错是因为得不到事务标识,猜测可能是事务注解没生效。

事务使用方法

查找spring boot的事务使用方式,大多数都是说通过两个注解就可以了。

首先在启动类中添加EnableTransactionManagement,如下:

然后在Service方法或者类上边添加Transactional,如下:

之后spring boot会自动在方法中添加事务。

上述方法是网上通用的方法,详细参考:https://www.jb51.net/program/3060192mp.htm,但是本地测试事务无效。

问题解决

后来想到每个service都集成了BaseService,其中的save、saveBatch等常用方法都放到了BaseService中,但是BaseService本身没有添加Transactional注解,添加后问题解决。。。

总结

到此这篇关于Spring boot事务无效报错:Transaction not enabled问题排查解决的文章就介绍到这了,更多相关Springboot事务无效报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring boot集成Mybatis的方法教程

    Spring boot集成Mybatis的方法教程

    这篇文章主要给大家介绍了Spring boot集成Mybatis的方法教程,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-04-04
  • SpringBoot统一数据返回格式的实现示例

    SpringBoot统一数据返回格式的实现示例

    本文主要介绍了SpringBoot统一数据返回格式,它提高了代码的可维护性和一致性,并改善了客户端与服务端之间的通信,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • Spring Task定时任务的配置和使用详解

    Spring Task定时任务的配置和使用详解

    本篇文章主要介绍了Spring Task定时任务的配置和使用详解,实例分析了Spring Task定时任务的配置和使用的技巧,非常具有实用价值,需要的朋友可以参考下
    2017-04-04
  • Java实现Redis分布式锁的三种方案汇总

    Java实现Redis分布式锁的三种方案汇总

    setnx、Redisson、RedLock 都可以实现分布式锁,从易到难得排序为:setnx < Redisson < RedLock,本文为大家整理了三种方法的实现,希望对大家有所帮助
    2023-11-11
  • EditPlus运行java时从键盘输入数据的操作方法

    EditPlus运行java时从键盘输入数据的操作方法

    这篇文章主要介绍了EditPlus运行java时从键盘输入数据的操作方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • JVM之方法返回地址详解

    JVM之方法返回地址详解

    这篇文章主要介绍了JVM之方法返回地址详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • springboot中@Value的工作原理说明

    springboot中@Value的工作原理说明

    这篇文章主要介绍了springboot中@Value的工作原理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 详解Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat

    详解Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat

    这篇文章主要介绍了Java时区处理之Date,Calendar,TimeZone,SimpleDateFormat的区别于用法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • mybatis配置Mapper.xml文件时遇到的问题及解决

    mybatis配置Mapper.xml文件时遇到的问题及解决

    这篇文章主要介绍了mybatis配置Mapper.xml文件时遇到的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Java运行Jar包内存配置的操作

    Java运行Jar包内存配置的操作

    这篇文章主要介绍了Java运行Jar包内存配置的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论