SpringBoot 数据库事务7种传播行为

2019-01-03  本文已影响102人  SlowGO
  1. REQUIRED

需要事务,它是默认传播行为,如果当前存在事务,就沿用当前事务,否则新建一个事务运行子方法。

  1. REQUIRES_NEW

无论当前事务是否存在,都会创建新事务运行方法,这样新事务就可以拥有新的锁和隔离级别等特性,与当前事务相互独立。

  1. NESTED

在当前方法调用子方法时,如果子方法发生异常,只回滚子方法执行过的SQL,而不回滚当前方法的事务。

  1. SUPPORTS

支持事务,如果当前存在事务,就沿用当前事务,如果不存在,则继续采用无事务的方式运行子方法。

  1. MANDATORY

必须使用事务,如果当前没有事务,则会抛出异常,如果存在当前事务,就沿用当前事务。

  1. NOT_SUPPORTED

不支持事务,当前存在事务时,将挂起事务,运行方法。

  1. NEVER

不支持事务,如果当前方法存在事务,则抛出异常,否则继续使用无事务机制运行。

1、2、3 是重点,最常用。

上一篇 下一篇

猜你喜欢

热点阅读