Spring事务注意事项
Spring的基于注解的声明式事务,配置起来非常简单,但是使用的时候需要注意两点:
假设
public class AServiceImpl implements AService {
    [......]
   public void saveA(A a){
         ADao.insertA(a);
   }
} 1. @Transactional必须标注在入口方法上。如:
public class ADaoImpl extends BaseDao implements ADao {
    @Transactional
    public void insertA(A a){
          insert("insert_a", a);
          insert("insert_b", a.getB());
   }
}如果是下面这种,就会失效:
public class ADaoImpl extends BaseDao implements ADao {
    
    public void insertA(A a){
           insertAA(A a);
   }
   @Transactional
   public void insertAA(A a){
          insert("insert_a", a);
          insert("insert_b", a.getB());  
   }
}2.加上事务的方法必须抛出RuntimeException的子类,否则不会回滚,如果在上面的加了@Transactional的insertA里catch了数据库异常,并且没有抛出,则这个方法的事务不会回滚。
相关推荐
  LeeLuffy    2020-10-16  
   DriveCar    2020-09-07  
   zjuwangleicn    2020-09-04  
   quniMdejiangyou    2020-08-15  
   gamestart0    2020-08-15  
   loviezhang    2020-08-08  
   gaozhennan    2020-08-03  
   mcvsyy    2020-08-02  
   happinessaflower    2020-07-29  
   花落花开春去秋来    2020-07-29  
   heniancheng    2020-07-26  
   牧场SZShepherd    2020-07-20  
   jakefei    2020-07-19  
   牧场SZShepherd    2020-07-19  
   qingjiuquan    2020-07-18  
   云之飞踢    2020-07-08  
   zhanbuquan    2020-07-04