一、什么是事务
作为单一、不可分割的行动而进行的任务集。
具有四个特性:
Atomic—每个单元都是一个全有或全无的操作。
Consistent—永不违背数据库完整性约束
Isolated—事务之间彼此隔离
Durable—提交的数据改变是永久性的
二、事务管理的操作
使用注解@Transactional 。
1.可以在类和方法上使用:类上为默认值,方法上是重写值。
2.也可以在接口上使用—从Spring 5.0开始
三、事务的传播
使用格式:
@Transactional (propagation=Propagation.REQUIRES_NEW)
7个事务传播级别:
MANDATORY—若无当前事务,抛出异常;若已有,使用当前。
NEVER—在无事务下执行;若已有,抛出异常。
NOT_SUPPORTS—在无事务下执行;若已有,暂停当前事务。
SUPPORTS—在无事务下执行;若已有,使用当前事务。
REQUIRED—默认值,在当前事务中执行,若无当前事务,则新建一个新事务。
REQUIRES_NEW—创建一个新的事务,若已有,则暂停当前事务。
NESTED—创建新的事务,若已有,新建内嵌事务。
四、回滚规则
1.默认抛出运行异常时,事务出发回滚。
2.rollbackFor和noRallbackFor属性重写默认设置;发生指定异常时回滚或不回滚。
Spring事务传播级别
最新推荐文章于 2023-07-08 18:34:12 发布