事务的传播行为有7种
1.REQUIRED
1.springboot框架默认的传播行为 。当前方法必须运行在事务中,如果当前事务存在,方法将在该事务中运行,这是一个整体。否则就自己创建一个事务。一般运用于增删改场景
2.SUPPORTS
2.表示当前方法不需要事务上下文,但是如果存在事务的话,那么方法会在事务中运行。一般运用于查询场景
3.MANDATORY
3.表示当前方法必须在事务中运行,如果不存在事务就抛出异常
4.REQUIRES_NEW
4.表示当前方法必须运行在它自己的事务中,如果存在当前事务,在该方法执行期间,当前事务会被挂起,自己创建事务执行
5.NOT_SUPPORTED
表示该方法不应该运行在事务中,如果当前存在事务,在该方法运行时,当前事务会被挂起,自己也不会创建事务
6.NEVER
表示当前方法不应该运行在事务的上下文中,如果当前存在事务,那么就会抛出异常
7.NESTED
表示如果当前存在一个事务,那么该方法将会在嵌套的事务中运行,嵌套的事务,可以独立于当前事务进行单独的提交和回滚。如果当前事务不存在,那么其行为跟REQUIRED一样。