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数据库会对事务进行优化,如果是一个查询操作,那么数据库可以有针对性的进行优化。我们可以通过设置事务属性,告诉数据库当前操作是一个只读操作,便于数据库进行优化。
原文地址:https://www.cnblogs.com/12344321hh/p/7459584.html