@Transactional 事务未生效!急急急!!!

1.现象

发生异常,未回顾,第一张表数据已入库;

2.背景

两条插入语句,
保存两张表数据,第一张表正常插入语句,第二条sql故意写错,看事务能否生效;
两条sql

 insert into tg_guide_info(guide_id, shop_code, guide_name, service_id, creator, modifier)
   values (#{guideId},#{shopCode},#{guideName},#{serviceId},#{operator},#{operator})

-- 注意有个ifnull是写错的。
 insert into  tg_guide_item_info (guide_id, item_id, item_name, brand_name, item_model, bar_code,creator, modifier)
    values <foreach collection="list" separator="," item="item">
    (#{guideId},#{item.itemId},#{item.itemName},ifnull(#{item.brandName},""),ifull(#{item.itemModel},""),ifnull(#{item.barCode},""),#{user},#{user})
  </foreach>

执行单元测试后,报错,
在这里插入图片描述
查看数据库:
发现第一张表已经插入数据,
第二张表由于报错没有生成!

我屮艸芔茻,这不应该啊,同一个事务报错应该回顾啊。

3.解决

由于我的工程里面多个数据库连接,立马看下有没有指定事务管理器,
一看service上的数据管理器就是操作的数据库呢。
在这里插入图片描述

这可咋整!

我又看了下方法上又加了事务,好像没啥问题
在这里插入图片描述

1.关键就这这里,请记住一句话
方法的@Transactional会覆盖类上面声明的事务

4.总结

1.多数据源需要检查事务管理器
2.方法的@Transactional会覆盖类上面声明的事务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值