spring事务概念
作者:互联网
一、事务状态:org.springframework.transaction.TransactionStatus
isNewTransaction 是否是新事务
hasSavepoint 是否有保存点
setRollbackOnly 设置回滚
isRollbackOnly 是否回滚
flush 刷新
isCompleted 是否完成
二、传播行为
类别 |
简称 |
无事务 |
已有事务 |
PROPAGATION_REQUIRED |
Required(必须-默认) |
创建一个新的事务 |
使用该事务 |
PROPAGATION_SUPPORTS |
Supports(支持) |
以非事务执行 |
使用该事务 |
PROPAGATION_MANDATORY |
Mandatory(强制) |
抛异常 |
使用该事务 |
PROPAGATION_REQUIRES_NEW |
requires_new(必须新的) |
创建一个新的事务 |
原事务挂起,创建一个新的事务 |
PROPAGATION_NOT_SUPPORTED |
not_supported(不支持) |
以非事务执行 |
原事务挂起,以非事务执行 |
PROPAGATION_NEVER |
Never(从不) |
以非事务执行 |
抛异常 |
PROPAGATION_NESTED |
Nested(嵌套) |
创建一个新事务 |
在嵌套事务内执行 |
三、 Spring隔离级别:
(1)、ISOLATION_DEFAULT:使用后端数据库默认的隔离级别
(2)、ISOLATION_READ_UNCOMMITTED:最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读
(3)、ISOLATION_READ_COMMITTED:允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生
(4)、ISOLATION_REPEATABLE_READ:对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生
(5)、ISOLATION_SERIALIZABLE:最高的隔离级别,完全服从ACID的隔离级别,确保阻止脏读、不可重复读以及幻读,也是最慢的事务隔离级别,因为它通常是通过完全锁定事务相关的数据库表来实现的
参考:https://www.cnblogs.com/ysocean/p/7617620.html
标签:事务,隔离,概念,幻读,spring,PROPAGATION,以非,ISOLATION 来源: https://www.cnblogs.com/xkzhangsanx/p/11216102.html