[Java]手动事务管理

393 阅读1分钟

在代码中间手动管理事务


设置回滚点

//手动事务
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
TransactionStatus status = transactionManager.getTransaction(def);

根据逻辑手动选择回滚操作

    synchroniseResponseDto.setMessage("同步成功");
    synchroniseResponseDtoList.add(synchroniseResponseDto);
    transactionManager.commit(status);


}catch(Exception e) {
    synchroniseResponseDto.setMessage(message);
    synchroniseResponseDto.setSuccess(false);
    synchroniseResponseDtoList.add(synchroniseResponseDto);
    transactionManager.rollback(status);
}

  

有另一种简单点的方式:

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

这会让当前的事务被设置为回滚标记,简单但是没有上面的方法灵活