@Transactional的七种事务传播行为
@TransactionalREQUIRED (默认事务)支持当前事务;如果当前没有事务,则新建一个事物REQUIRES_NEW (a事务失败了不会影响b事务的执行)新建事务;如果当前存在事务,则把当前事务挂起SUPPORTS支持当前事务,如果不存在则以非事务方式执行。MANDATORY支持当前事务,如果不存在则抛出异常(IllegalTransactionStateException)。 类似于
·
@Transactional
-
REQUIRED (默认事务)
- 支持当前事务;如果当前没有事务,则新建一个事物

-
REQUIRES_NEW (a事务失败了不会影响b事务的执行)
- 新建事务;如果当前存在事务,则把当前事务挂起

-
SUPPORTS
- 支持当前事务,如果不存在则以非事务方式执行。

-
MANDATORY
- 支持当前事务,如果不存在则抛出异常(IllegalTransactionStateException)。 类似于同名的 EJB 事务属性

-
NOT_SUPPORTED
- 以非事务方式执行,如果存在则暂停当前事务,不支持当前事务,而是始终以非事务的方式执行

-
NEVER
- 以非事务方式执行,如果存在事务则抛出异常(IllegalTransactionStateException)

-
NESTED
- 如果当前存在事务,则对该传播行为修饰的方法回依然使用当前事务

更多推荐



所有评论(0)