一.事务的传播行为(七大事务传播方式)
1.REQUIRED(默认)
支持当前事务,如果不存在则创建一个新的事务
2.SUPPORTS
支持当前事务,如果不存在,则以非事务方式执行
3.MANDATORY
支持当前事务,如果不存在则抛出异常
4.REQUIRES_NEW
创建一个新事务,如果当前事务存在,则暂停当前事务
5.NOT_SUPPORTED
以非事务方式执行,如果存在当前事务,则暂停当前事务
6.NEVER
以非事务方式执行,如果存在事务则抛出异常
7.NESTED
如果当前事务存在,则在嵌套事务中执行
二.事务的隔离级别
1.DEFAULT(默认)
使用底层数据存储的默认隔离级别
SqlServer、Oracle 默认隔离级别为:Read Commited
MySQL InnoDB 默认隔离级别为:Repeatable Read
2.READ_UNCOMMITTED(读未提交)
一个事务可以读取另一个未提交事务的数据
3.READ_COMMITTED(读已提交)
一个事务要等另一个事务提交后才能读取数据
4.REPEATABLE_READ(重复读)
在开始读取数据(事务开启)时,不再允许修改操作
5.SERIALIZABLE(序列化)
数据库事务的最高隔离级别。在此级别下,事务串行执行。可以避免脏读、不可重复读、幻读等读现象。但是效率低下,耗费数据库性能,不推荐使用。
网友评论