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

事务隔离

可以通过 @Transactional(isolation = Isolation.SERIALIZABLE) 来设置。

事务隔离等级
防止的错误
Spring 中对应的枚举
说明

默认

DEFAULT

Spring 默认事务隔离等级取决于 RDBMS 的默认隔离等级。我们知道 MySQL 的默认隔离等级是可重复读取,所以 Spring Data JPA 配合 MySQL 一同使用时,DEFAULT 代表的是可重复读取。

读取未提交

无

READ_UNCOMMITTED

拥有最大的并发量和最差的安全性。

读取已提交

脏读

READ_COMMITTED

只能读取已经提交的数据,可以防止脏读。

可重复读取

脏读、不可重复读

REPEATABLE_READ

MySQL InnoDB 的默认事务隔离等级。

可序列化

脏读、不可重复读、幻读

SERIALIZABLE

最高的事务隔离等级,拥有最差的并发量和最高的安全性。其实就是将并发事务变为非并发,串行地执行,所以能保证绝对不会出现并发带来的错误。

注意:事务隔离等级的配置仅在事务创建时有效。

上一页Transaction and Spring Data JPA下一页事务传播

最后更新于3年前