@Transactional的七种事务传播行为
@TransactionalREQUIRED (默认事务)支持当前事务;如果当前没有事务,则新建一个事物REQUIRES_NEW (a事务失败了不会影响b事务的执行)新建事务;如果当前存在事务,则把当前事务挂起SUPPORTS支持当前事务,如果不存在则以非事务方式执行。MANDATORY支持当前事务,如果不存在则抛出异常(IllegalTransactionStateException)。 类似于
·
@Transactional
-
REQUIRED (默认事务)
- 支持当前事务;如果当前没有事务,则新建一个事物
-
REQUIRES_NEW (a事务失败了不会影响b事务的执行)
- 新建事务;如果当前存在事务,则把当前事务挂起
-
SUPPORTS
- 支持当前事务,如果不存在则以非事务方式执行。
-
MANDATORY
- 支持当前事务,如果不存在则抛出异常(IllegalTransactionStateException)。 类似于同名的 EJB 事务属性
-
NOT_SUPPORTED
- 以非事务方式执行,如果存在则暂停当前事务,不支持当前事务,而是始终以非事务的方式执行
-
NEVER
- 以非事务方式执行,如果存在事务则抛出异常(IllegalTransactionStateException)
-
NESTED
- 如果当前存在事务,则对该传播行为修饰的方法回依然使用当前事务
更多推荐
已为社区贡献1条内容
所有评论(0)