事务没有生效

Posted ctaixw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务没有生效相关的知识,希望对你有一定的参考价值。

@Override
public void apiImplMethod(CommonRequest<Long> commonRequest)
Long id = commonRequest.getRequestData();
test02(id);


@Transactional
public void test02(Long id)
GoodsSkuPo goodsSku = new GoodsSkuPo();
goodsSku.setInventory(123321);
goodsSku.setGoodsNo("0181222");
goodsSkuRepository.insertSelective(goodsSku);
System.out.println(goodsSku);
Long aa = id % 2;
if (aa == 0)
aa = 10 / aa;

注意:apiImplMethod上没有 Transactional注解,这时事务不会生效
因为spring事务使用的是aop,aop使用的是动态代理,动态代理要求一个类必须有个接口
这个 test02 方法并没有接口,所以事务不生效,将 Transactional 加到接口实现方法上即可

以上是关于事务没有生效的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点#MySQL学习-为啥有时候事务的隔离没有生效

如何避免掉进spring事务不生效的坑中

事务没有生效

「Spring」事务失效的场景

fix bug:Spring中事务不生效的问题

为什么private方法加了@Transactional,事务也没有生效?