自学内容网 自学内容网

Spring事务的传播行为的7种类型

Spring默认的传播行为是PROPAGATION_REQUIRED,即如果当前存在事务,即加入该事务;如果当前没有事务,则新建一个新的事务。因此只开启了一个事务。

三个加入,两个挂起,一个抛异常,一个嵌套

  • TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。这是默认值
  • TransactionDefinition.PROPAGATION_SUPPORTS:如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行。
  • TransactionDefinition.PROPAGATION_MANDATORY:如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常。
  • TransactionDefinition.PROPAGATION_REQUIRES_NEW:如果当前存在事务,则把当前事务挂起。创建一个新的事务
  • TransactionDefinition.PROPAGATION_NOT_SUPPORTED:如果当前存在事务,则把当前事务挂起。以非事务方式运行
  • TransactionDefinition.PROPAGATION_NEVER:如果当前存在事务,则抛出异常。以非事务方式运行
  • TransactionDefinition.PROPAGATION_NESTED:如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等TransactionDefinition.PROPAGATION_REQUIRED。

原文地址:https://blog.csdn.net/weixin_42923363/article/details/142877686

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!