前言:如果是多个服务跨服务操作表,那么就需要分布式事物!!!
具体实现比较简单,如果只是某一个方法,在该方法上加入注解【@Transactional
】即可;
@Transactional == @Transactional(rollbackFor = {RunTimeException.class,Exception.class})
注意 : 加@Transactional的方法体内使用try{}catch(Exception e){}进行捕获异常且不抛出时,要在catch中加上一句话进行手动回滚事务 :
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
代码如下 :
@Transactional
public void insert1(JSONObject paramsJson) {
try {
//todo...
}catch (Exception ex){
log.error("系统异常::{}",ex);
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
}
注意 : 方法一定要使用'public'修饰,否则注解无效!!!