spring事务

来源:互联网 发布:hbase mysql元数据 编辑:程序博客网 时间:2024/05/22 17:00

1. 事务控制

1.1.使用注解对事务的控制

       @Transactional

      

1.2.事务的传播特性

(1)  REQUIRED


           业务方法需要在一个事务中运行,如果一个方法已经处在一个事务中,那么加入到这个事务中,否则就会创建一个事务。

@Transactional的默认传播特性是required,实际项目中80%都是采用required。

(2)  NEVER

           指定的业务方法绝对不能在事务范围内运行,如果在某个事务中执行,就会抛异常。


(3)  MANDATORY

(4)  SUPPORTS


在有事务的环境运行:

(5)  NOT_SUPPORTED

(6)  REQUIRES_NEW

两个独立事务,互相不受影响


(7)  NESTED(嵌套的)



(1)    在已有事务中执行nested事务,添加nested先对已有事务设置保存点

 

(2)    nested事务抛出异常,外部事务回滚到保存点


(3)    外部事务回滚,nested事务也跟着回滚


1.3.数据库五类并发问题



l  事务的隔离级别


1.4.使用配置文件控制事务