Spring事务在不同类的使用

同一个service中,被外部调用的方法A如果有事务,则方法A中所有方法均会使用方法A的事务,且子方法的事务失效

不同一个service中,被外部调用的方法A如果有事务,则方法A中所有方法均会默认使用方法A的事务,如果B有事务,B会使用B的事务

结论:被外部调用的方法A如果有事务,则方法A中所有方法均会使用方法A的事务,在同类中子方法事务失效,不同类子方法事务生效。新增操作回滚后,Id值已经被增加,不会回滚

  • 外部方法有@Transactional,内部方法没有 都是用外部方法@Transactional
  • 外部方法没@Transactional,内部方法没有 都是单独事务自己创建提交
  • 外部方法有@Transactional,内部方法也有 内部方法不是同一个类的@Transactional生效(代理原理决定)
  • 外部方法没@Transactional,内部方法有 内部方法@Transactional生效

猜你喜欢

转载自blog.csdn.net/qq_43621091/article/details/107070861