@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会覆盖类上面声明的事务

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页