开发者

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

开发者 https://www.devze.com 2023-11-28 10:21 出处:网络 作者: clooker
目录问题描述问题排查事务使用方法问题解决总结问题描述 使用spring boot + myBATis plus时添加的事务不生效,并且有些方法操作会出现如下异常:
目录
  • 问题描述
  • 问题排查
  • 事务使用方法
  • 问题解决
  • 总结

问题描述

使用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类,找到报错的位http://www.devze.com置,如下:

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

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

事务使用方法

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

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

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

然后在Service方法或者类上边编程客栈添加Transacti编程onal,如下:

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

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

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

问题解决

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

总结

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

0

精彩评论

暂无评论...
验证码 换一张
取 消