事务操作(声明式事务管理参数配置,传播行为)

1——在@Transactional注解中,可以配置事务相关参数

  (1)propagation:事务传播行为:

      多事务方法之间进行调用,这个过程中事务是怎样进行管理的

1.1——Spring事务传播行为有7种

  1.1.1——REQUIRED:

      如果当前有事务在运行,当前方法就在这个事务内运行,否则就启动(创建)一个新的事务,并且自己在这个事务内运行

  1.1.2——REQUIRED_NEW:

      当前的方法使用时,必须启动新事务,并在新事务内运行,如果有事务在运行,应该将运行中的事务挂起

  (2)isolation:事务隔离级别——为解决事务隔离性问题而生

    (2.1)事务的隔离性:多事务操作之间不会产生影响,不考虑隔离性会产生很多问题:脏读,不可重复读,虚(幻)读

      (2.1.1) 脏读:多事务之间,一个未提交的事务,读取到了另一个事务回滚前的数据

      (2.1.2)不可重复读:多事务之间,一个未提交的事务在进行第二次读取数据时,读取到了一个事务已提交的数据

            例子:在事务A中,读取到张三的工资为5000,操作没有完成,事务还没提交。
                与此同时,
                事务B把张三的工资改为8000,并提交了事务。
                随后,
                在事务A中,再次读取张三的工资,此时工资变为8000。在一个事务中前后两次读取的结果并不致,导致了不可重复读

      (2.1.3)虚读:一个未提交事务读取到另一提交事务添加的数据

            例子:

              目前工资为5000的员工有10人,事务A读取所有工资为5000的人数为10人。
              此时,
              事务B插入一条工资也为5000的记录。
              这是,事务A再次读取工资为5000的员工,记录为11人。此时产生了幻读。

    (2.2)事务的隔离级别:有五种

事务操作(声明式事务管理参数配置,传播行为)

  (3)timeout:超时时间:

      事务需要在一定时间内进行提交,如果超时,需要进行事务回滚

      默认值时-1,设置的时间是以秒为单位的

  (4)readOnly:是否只读:

      读:查询操作,写:添加,修改,删除操作

      readOnly:默认值是false,既可以查询,也可以进行添加,修改,删除操作

  (5)rollbackFor:回滚

      设置出现哪些异常时,进行事务的回滚,

添加方法,rollbackFor = 异常名称.class

  (6):noRollbackFor:不回滚

      设置出现哪些异常时,不进行事务的回滚

添加方法,noRollbackFor = 异常名称.class

上一篇:Python Flask框架初识,第一个Web界面


下一篇:docker push 报错Get https://10.100.9.97:5000/v1/_ping: http: server gave HTTP response to HTTPS client