我爱编程

事务管理@Transactional

2018-03-21  本文已影响0人  内卷星球

传播行为(生命周期)-Propagation

所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为(org.springframework.transaction.annotation.Propagation)

@Transactional(propagation = Propagation.REQUIRED)

隔离级别-Isolation

隔离级别是指若干个并发的事务之间的隔离程度,与我们开发时候主要相关的场景包括:脏读取、重复读、幻读;
Isolation(隔离)决定了事务的完整性,处理在多事务对相同数据下的处理机制

@Transactional(isolation = Isolation.DEFAULT)

timeout(默认TIMEOUT_DEFAULT)

timeout指定事务过期时间,默认为当前数据库的事务过期时间

readonly(默认false)

指定当前事务是否是只读事务

rollbackFor(默认Throwable的子类)

指定哪个或者哪些异常可以引起事务回滚

noRollBackFor(默认Throwable的子类)

指定哪个或者哪些异常不可以引起事务回滚

@Transactional(propagation=Propagation.REQUIRED)           //控制事务传播。默认是Propagation.REQUIRED
@Transactional(isolation=Isolation.DEFAULT)                //控制事务隔离级别。默认跟数据库的默认隔离级别相同
@Transactional(readOnly=false)                             //控制事务可读写还是只可读。默认可读写
@Transactional(timeout=30)                                 //控制事务的超时时间,单位秒。默认跟数据库的事务控制系统相同,又说是30秒
@Transactional(rollbackFor=RuntimeException.class)         //控制事务遇到哪些异常才会回滚。默认是RuntimeException
@Transactional(rollbackForClassName=RuntimeException)      //同上
@Transactional(noRollbackFor=NullPointerException.class)   //控制事务遇到哪些异常不会回滚。默认遇到非RuntimeException不会回滚
@Transactional(noRollbackForClassName=NullPointerException)//同上
上一篇下一篇

猜你喜欢

热点阅读