spring 事务传播

前言

spring 提供了非常方便的事务管理,只需要在service层加上 @Transactional 就可以开启事务,@Transactional 可以指定很多种传播级别,下面记录一下。。。

REQUIRED

如果当前有事务就加入,如果当前没有事务就开启一个新的事务

SUPPORTS

如果当前有事务就加入,如果当前没有事务则不开启事务

MANDATORY

如果调用的方法没有事务的话则会抛出一个异常

REQUIRES_NEW

如果当前有事务则挂起当前事务,自己新开一个事务使用,如果当前没有事务也是自己开一个

NOT_SUPPORTED

如果当前有事务则挂起事务,不使用事务,如果当前没有事务…反正就是不用事务

NEVER

如果当前有事务则抛出异常

NESTED

如果当前有事务则开启一个嵌套事务,如果当前没有事务则开启一个新的事务。
主事务提交或回滚子事务也会跟着提交或回滚,但当子事务发生异常需要回滚,父事务可以选择是否try异常不进行回滚

哦豁~

end