手把手带你实战下Spring的七种事务传播行为

手把手带你实战下Spring的七种事务传播行为
最新回答
云纹梦纷蝶

2021-01-15 19:30:01

Spring的七种事务传播行为如下

  1. REQUIRED

    • 行为描述:如果当前没有事务,就创建一个新事务;如果当前存在事务,就加入该事务。这是最常见的选择,也是Spring默认的事务传播行为。
  2. SUPPORTS

    • 行为描述:支持当前事务。如果当前存在事务,就加入该事务;如果当前不存在事务,就以非事务方式执行。
  3. MANDATORY

    • 行为描述:支持当前事务,但要求当前必须存在事务。如果当前存在事务,就加入该事务;如果当前不存在事务,则抛出异常。
  4. REQUIRES_NEW

    • 行为描述:无论当前是否存在事务,都创建一个新事务。这意味着,如果当前存在事务,新事务将与当前事务独立。
  5. NOT_SUPPORTED

    • 行为描述:以非事务方式执行操作。如果当前存在事务,就把当前事务挂起,直到该操作执行完成后再恢复。
  6. NEVER

    • 行为描述:以非事务方式执行,但要求当前必须不存在事务。如果当前存在事务,则抛出异常。
  7. NESTED

    • 行为描述:如果当前存在事务,则在嵌套事务内执行。嵌套事务可以看作是一个保存点,允许回滚到该保存点。如果当前没有事务,则按REQUIRED属性执行,即创建一个新事务。

这些事务传播行为为开发者提供了强大的事务管理功能,可以根据不同的业务场景选择合适的事务传播行为,从而确保数据的一致性和完整性。