1、REQUIRED(默认的事务传播方式):如果当前有事务就加入当前事务,如果当前没有事务就新建一个事务,总结就是总是只有一个事务在执行。
2、REQUIRED_NEW:每次都新开一个事务。
3、SUPPORTS:如果当前有事务就加入当前事务,如果当前没有事务就以普通方式执行,与supported的区别就是如果没有事务时是以普通方式执行的。总结就是按照字面意思“支持”,有就加入,没有就没有。
4、NOT_SUPPORTED:如果当前有事务则将当前事务挂起,然后以普通方式执行,执行完成之后恢复当前事务,如果没有事务则以普通方式执行。
5、MANDATORY:“强制的”,强制有事务,如果当前有事务则加入当前事务,如果当前没有事务则抛异常。
6、NEVER:要求方法只能载非事务环境下运行,如果有事务则抛异常。
7、NESTED:如果当前有事务则创建嵌套事务,子事务的回滚不会影响父事务,但是父事务的回滚会影响子事务,如果当前没有事务则跟Required一样,创建一个事务。