Spring 的事务传播性
spring 的事务传播性
| 常量名称 | 常量解释 |
|---|---|
| PROPAGATION_REQUIRED | spring中的默认事务传播机制。支持当前事务,如果当前没有事务,就新建一个事务。 |
| PROPAGATION_REQUIRES_NEW | 新建事务,如果当前存在事务,则将当前事务挂起。新建的事务和被挂起的事务没有关联,是两个独立的事务,外层事务失败回滚后,不会影响到内层的事务。内层事务失败抛出异常后,外层事务捕获,也可以不处理回滚操作。 |
| PROPAGITION_SUPPORTS | 支持当前事务,如果当前没有事务,就以非事务方式运行 |
| PROPAGITION_MANDATORY | 支持当前事务,如果当前没有事务,则抛出异常。 |
| PROPAGITION_NOT_SUPPORTED | 以非事务方式运行,如果当前存在事务,则将当前事务挂起 |
| PROPAGITION_NEVER | 以非事务方式运行,如果当前存在事务,则抛出异常。 |
| PROPAGITION_NESTED | 如果一个活动事务存在,则运行在一个嵌套事务中。如果没有活动事务,则按REQUIRED运行。它使用了一个单独的事务,这个事务拥有多个可以回滚的保存点。内部事务的回滚不会对外部事物造成影响。他只对DataSourceTransationManager事务管理器起效。 |
REQUIRED 和 REQUIRES_NEW : 两个方法必须在不同的类中才会生效,才会创建新的事务。否则只会创建一个。