java面试题Spring支持的常用事务传播属性和事务传播级别

事务的属性

    1   propagation用来设置事务的传播行为

                     事务的传播行为:一个方法运行在了一个开启事务的方法中,当前方法是使用依附的方                      法事务还是使用自身的事务

             Propagation.REQUIRED默认值 使用其依附的别人方法的事务

             Propagation.REQUIRES_NEW 将原来的事务挂起  开启一个新的事务(即执行自身的事务)

使用方法   在需要使用事务的方法上加注解   @Transactional 什么都不加默认为Propagation.REQUIRED

若想开启新事务执行自己的事务则可以在方法上加@Transactional(propagation=Propagation.REQUIRES_NEW)

 

2   isolation用来设置事务的隔离级别

     Oracle支持的事务隔离级别为   (默认读已提交read committed    串行化 serializable 

  •    Mysql支持所有的事务隔离级别  读未提交  read uncommitted    
  •                                                      读已提交 read commited
  •                                                      (默认)可重复读 repeatable  read
  •                                                      串行化 serializable            

 同传播行为一样 也是在注解@Transaction()中添加 (isolation=Isolation.DEFAULT) 

例  : 购买图书时Mysql数据库默认是可重复读事务隔离级别  则当数据库中书价格变的时候查出的价格仍然是变动之前的

posted @ 2019-06-07 09:16  ikun~  阅读(2447)  评论(0编辑  收藏  举报