@Transactional 注意事项方法调用
Posted qianabby
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Transactional 注意事项方法调用相关的知识,希望对你有一定的参考价值。
1.同一个类中,即A与B在同一类中,A()调用B()方法,A不加 @Transactional 事务注解,B加 @Transactional 事务注解,则B中的事务不起作用,A加事务,才会起作用,B中若将异常捕获,事务也不起作用
@Transactional //A加事务才会起作用 public void A(){ B(); } -------------------------------- @Transactional //B加不加事务无影响 public void B(){ try{ throw new Exception(); }catch(Exception e){//B中将异常铺货未能抛出到A中,事务也不起作用 } }
2.不同类中,即A在A类中,B在B类中,A调用B,A与B事务独立,此时A不加事务B加事务,B中事务可生效,则可将需要加事务的代码块抽取出放入其他类的方法中加事务来实现部分代码事务回滚
public void A(){ abcabc; try{ B(); }catch(Exception e){ } defdef;//B中发生异常事务回滚,不影响方法A } -------------------------------- @Transactional public void B(){ throw new Exception(); }
3.
以上是关于@Transactional 注意事项方法调用的主要内容,如果未能解决你的问题,请参考以下文章
springboot~Transactional注解的注意事项
@Transactional 方法调用另一个没有@Transactional 注释的方法?
SpringBoot设置 @Transactional ,并在异常处理中调用setRollbackOnly()事务不回滚