spring事务理解

前提两个都是事务的方法,并且两个方法会进行调用,调用方统一使用required

举例有两个方法:

  1. required

如果当前上下文存在事务,被调用方则加入该调用方的事务,没有的话就新建(指单独被调用时)一个事务

  1. supports

支持事务,上下文中有事务,被调用方则加入该事务,单独被调用时则没有事务

  1. mandatory

必须有事务,上下文有事务,被调用方则加入该事务,单独调用时直接抛异常,因为这时候没有一个活动的事务

  1. requires_new

被调用方会单独开启事务,调用方存在事务则将调用方挂起来,两个事务互不相干

  1. not_supported

总是非事务的方式执行,调用方调用时会直接被挂起

  1. never

总是非事务的方式执行,调用方调用时会直接抛异常

  1. nested

嵌套子事务,外层影响内层,内层不影响外层,除非外层try-catch并在catch中向外抛出异常

原文:https://blog.csdn.net/weixin_39625809/article/details/80707695