zoukankan      html  css  js  c++  java
  • 170831-关于声明式事务-事务属性的设置

    1.  事务属性的设置  @Transactional中的属性值
    2.  传播行为
       propagation=Propagation.REQUIRED是默认值 会按外层事务来,当下面的事务有错时,也会回滚
       propagation=Propagation.SUPPORTS按外层的来,外层没有,就相当于没有这个事务
       propagation=Propagation.REQUIRES_NEW 按自己的来,当下面的事务有错时,他不会回滚
    3.  隔离级别
       isolation=Isolation.REPEATABLE_READ是默认值,可重复读,在查询了某个值之后,打了断点,修改数据库中的值,再次查询,还是原来的数
       isolation=Isolation.READ_COMMITTED 提交读取,当上述情况,再次查询时就是新改的值
    4. 事务根据什么异常不进行回滚
      noRollbackFor=ArithmeticException.class默认为有异常就回滚,现在设置为出现运算异常不回滚
    5. 事务的超时属性
      timeout=3 这个3秒指的是有没有3秒之内执行完sql语句,如果没有事务回滚,相当于对该操作进行撤销,避免浪费资源
    6. 事务的只读属性
      readOnly=true数据库会对事务进行优化,如果是一个查询操作,那么数据库可以有针对性的进行优化。我们可以通过设置事务属性,告诉数据库当前操作是一个只读操作,便于数据库进行优化。
  • 相关阅读:
    Java运行时数据区域
    线程的实现原理
    redis分布式锁的实现
    Incorrect string value: 'xF0x9Fx92x8BTi...'错误
    linux命令之less命令
    Hive数据类型和DDL操作
    Hive安装、配置和使用
    CentOS 7安装配置MySQL 5.7
    Spring+SpringMVC+MyBatis整合
    MyBatis的事物管理和缓存
  • 原文地址:https://www.cnblogs.com/12344321hh/p/7459584.html
Copyright © 2011-2022 走看看