栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring的事务传播机制是什么?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring的事务传播机制是什么?

多个事务方法相互调用时,事务如何在这些方法之间进行传播,spring中提供了7中不同的传播特性,来保证事务的正常执行:

REQUIRED:    默认的传播特性,如果当前没有事务,则新建一个事务,如果当前存在事务,则加入这个事务

SUPPORTS:    当前存在事务,则加入当前事务,如果当前没有事务,则以非事务的方式执行     
    
MANDATORY:    当前存在事务,则加入当前事务,如果当前事务不存在,则抛出异常  
                  
REQUIRED_NEW:    创建一个新事务,如果存在当前事务,则挂起改事务

NOT_SUPPORTED:    以非事务方式执行,如果存在当前事务,则挂起当前事务

NEVER:    不使用事务,如果当前事务存在,则抛出异常   
                             
NESTED:    如果当前事务存在,则在嵌套事务中执行,否则REQUIRED的操作一样

NESTED和REQUIRED_NEW的区别:    REQUIRED_NEW是新建一个事务并且新开始的这个事务与原有事务无关,
而NESTED则是当前存在事务时会开启一个嵌套事务,在NESTED情况下,父事务回滚时,子事务也会回滚,
而REQUIRED_NEW情况下,原有事务回滚,不会影响新开启的事务

NESTED和REQUIRED的区别:    REQUIRED情况下,调用方存在事务时,则被调用方和调用方使用同一个
事务,那么被调用方出现异常时,由于共用一个事务,所以无论是否catch异常,事务都会回滚,而在
NESTED情况下,被调用方发生异常时,调用方可以catch其异常,这样只有子事务回滚,父事务不会回滚。


        

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1013346.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号