Spring中的@Transactional(rollbackFor = Exception.class)属性详解
当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。
在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。
在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚。
@Transactional注解的全部属性详解
@Transactional属性
| 属性 | 类型 | 描述 | 
|---|---|---|
| value | String | 可选的限定描述符,指定使用的事务管理器 | 
| propagation | enum: Propagation | 可选的事务传播行为设置 | 
| isolation | enum: Isolation | 可选的事务隔离级别设置 | 
| readOnly | boolean | 读写或只读事务,默认读写 | 
| timeout | int (in seconds granularity) | 事务超时时间设置 | 
| rollbackFor | Class对象数组,必须继承自Throwable | 导致事务回滚的异常类数组 | 
| rollbackForClassName | 类名数组,必须继承自Throwable | 导致事务回滚的异常类名字数组 | 
| noRollbackFor | Class对象数组,必须继承自Throwable | 不会导致事务回滚的异常类数组 | 
| noRollbackForClassName | 类名数组,必须继承自Throwable | 不会导致事务回滚的异常类名字数组 | 
作者:Dawnzhang 
出处:https://www.cnblogs.com/clwydjgs/p/9317849.html (节选)
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号