在Spring Boot中,事务的隔离级别可以通过@Transactional
注解的isolation
属性来设置。该属性可以接受Isolation
枚举类的值,包括:
-
Isolation.DEFAULT
:springboot的默认隔离级别,使用数据库默认的隔离级别。 -
Isolation.READ_UNCOMMITTED
:允许脏读、不可重复读和幻读。 -
Isolation.READ_COMMITTED
:避免脏读,但允许不可重复读和幻读。 -
Isolation.REPEATABLE_READ
:避免脏读和不可重复读,但允许幻读。 -
Isolation.SERIALIZABLE
:避免以上所有并发问题。
SpringBoot的隔离级别有五种值,但Isolation.DEFAULT根据不同
数据库有不同的下四种类型之一,所以说隔离级别只有四种,SpringBoot的隔离级别值有五种选择。
注意:并发引起脏数据,锁加到事务外面,具体例子见下面第二个链接
资料引用:
Spring 事务原理详解_spring事务原理解析-CSDN博客
Java 当事物@Transactional跟锁synchronized同时出现时请注意_@transactional和java锁有什么关系-CSDN博客