事务的传播特性
spring提供了7种事务传播行为,分别如下:
- PROPAGATION_REQUIRED:默认事务类型,如果没有,就新建一个事务;如果有,就加入当前事务。适合绝大多数情况。
- PROPAGATION_REQUIRES_NEW:如果没有,就新建一个事务;如果有,就将当前事务挂起。
- PROPAGATION_NESTED:如果没有,就新建一个事务;如果有,就在当前事务中嵌套其他事务。
- PROPAGATION_SUPPORTS:如果没有,就以非事务方式执行;如果有,就使用当前事务。
- PROPAGATION_NOT_SUPPORTED:如果没有,就以非事务方式执行;如果有,就将当前事务挂起。即无论如何不支持事务。
- PROPAGATION_NEVER:如果没有,就以非事务方式执行;如果有,就抛出异常。
- PROPAGATION_MANDATORY:如果没有,就抛出异常;如果有,就使用当前事务。