spring-210729-04—事务操作-Spring声明式事务管理-事务参数
注解@Transactional
在service类上面添加注解@Transactional,
可以在注解里面配置事务先关的参数。
@Transactional(propagation = Propagation.REQUIRED,isolation = Isolation.REPEATABLE_READ,timeout = -1,readOnly = false,) // 事务注解
propagation:
事务的传播行为
多事务方法直接进行调用,这个过程中事务是如何进行管理,就叫事务的传播行为。
ioslation:
事务的隔离级别
事务有一个特性叫隔离性,多事务操作之间不会产生影响;不考虑隔离性的话会产生很多问题。
有三个读的问题:脏读,不可重复读,幻/虚读
脏读:一个未提交的事务,读取到了另一个未提交的事务数据。
不可重复读:一个未提交事务,读取到了另一个提交事务 修改 数据。
幻读:一个未提交事务,读取到了另一个提交事务 添加 数据。
timeout:
超时时间
事务需要在一定的时间内进行提交,如果不提交,就进行事务回滚
默认值是-1,设置时间是以 秒 单位进行计算
readonly:
是否只读
读:DQL操作 , 写:DML操作
readonly默认值false,表示可以进行DQL,DML操作
readonly设置为true,表示只可以进行DQL操作
rollbackfor:
回滚
设置出现哪些异常进行事务回滚
norollbackfor:
不回滚
设置出现哪些异常不进行事务回滚
事务的传播行为
事务隔离级别