美文网首页Java相关
Spring - 事务传播

Spring - 事务传播

作者: 万福来 | 来源:发表于2020-04-12 19:41 被阅读0次

    传播机制类型

    下面的类型都是针对于被调用方法来说的,理解起来要想象成两个 service 方法的调用才可以。

    PROPAGATION_REQUIRED (默认)

    支持当前事务,如果当前没有事务,则新建事务
    如果当前存在事务,则加入当前事务,合并成一个事务

    REQUIRES_NEW

    新建事务,如果当前存在事务,则把当前事务挂起
    这个方法会独立提交事务,不受调用者的事务影响,父级异常,它也是正常提交

    NESTED

    如果当前存在事务,它将会成为父级事务的一个子事务,方法结束后并没有提交,只有等父事务结束才提交
    如果当前没有事务,则新建事务
    如果它异常,父级可以捕获它的异常而不进行回滚,正常提交
    但如果父级异常,它必然回滚,这就是和 REQUIRES_NEW 的区别

    SUPPORTS

    如果当前存在事务,则加入事务
    如果当前不存在事务,则以非事务方式运行,这个和不写没区别

    NOT_SUPPORTED

    以非事务方式运行
    如果当前存在事务,则把当前事务挂起

    MANDATORY

    如果当前存在事务,则运行在当前事务中
    如果当前无事务,则抛出异常,也即父级方法必须有事务

    NEVER

    以非事务方式运行,如果当前存在事务,则抛出异常,即父级方法必须无事务

    相关文章

      网友评论

        本文标题:Spring - 事务传播

        本文链接:https://www.haomeiwen.com/subject/wribmhtx.html