Spring Data JPA Quick Guide
  • Spring Data JPA 快速指南
  • 配置依赖
  • 配置数据源
  • 数据库编码与词语定序
  • Core Concepts
  • 基本用法
  • Transactions
    • 什么是事务
    • 配置事务(@EnableTransactionManagement)
    • 配置事务(XML)
    • 配置事务(@Transactional)
    • @Transactional 实现细节
    • Transaction and Spring Data JPA
    • 事务隔离
    • 事务传播
  • Query Creation from Method Names
  • Using @Query
  • Sorting and Pagination
  • Projection
  • Specification
  • Query by Example
  • javax.persistence Annotations
    • @OneToOne (bidirectional)
      • Usage
      • PO Serialization
      • Save and Update
      • Nested Projection
      • @MapsId
    • @OneToMany (bidirectional)
    • @OneToMany (unidirectional)
    • @ManyToMany (bidirectional)
      • Many-to-Many Using a Composite Key
由 GitBook 提供支持
在本页
  1. Transactions

事务传播

  • REQUIRED

    REQUIRED 是默认的事务传播类型。Spring 检查当前是否有可用的事务,将当前业务逻辑加入可用的事务,如果不存在则创建一个事务。

    @Transactional(propagation = Propagation.REQUIRED)
    public void requiredExample(String user) { 
        // ... 
    }

    因为 REQUIRED 是默认的事务传播类型,所以我们可以省略它:

    @Transactional
    public void requiredExample(String user) { 
        // ... 
    }
  • SUPPORTS

    Spring 首先检查是否有可用事务存在,有则使用,否则业务逻辑会以非事务模式运行。

  • MANDATORY

    Spring 首先检查是否有可用事务存在,有则使用,否则抛出错误。

  • NEVER

    Spring 检查是否有可用事务存在,如果存在则抛出错误。

  • NOT_SUPPORTED

    Spring 检查是否有可用事务存在,Spring 会终止当前事务,并且使业务逻辑以非事务模式运行。

  • REQUIRES_NEW

    Spring 检查是否有可用事务存在,Spring 会终止当前事务,并且创建一个新的事务。

  • NESTED

    Spring 检查是否存在事务,如果存在,则标记保存点。这意味着如果我们的业务逻辑执行抛出异常,那么事务就会回滚到这个保存点。如果没有活动事务,它就像 REQUIRED 一样工作。

上一页事务隔离下一页Query Creation from Method Names

最后更新于3年前