在事务控制的service层类中使用try catch 去捕获异常后,就会使事务控制失效,因为该类的异常并没有抛出,就不是触发事务管理机制。怎样才能即使用try catch去捕获异常,而又让出现异常后spring回滚呢,这里就要用到
@Transactional(rollbackFor = { Exception.class })
public boolean save(String jsonData,String recordData) {
boolean flag=false;
try{
业务保存save1();
int s=1/0;
业务保存save2();
flag=true;
}
}catch(Exception e){
//设置手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
flag=false;
}
return flag;
}