Spring Boot手动控制事务

90 阅读1分钟
@Autowired
private PlatformTransactionManager transactionManager;

//开启事务
DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition();
//嵌套事务
defaultTransactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
//设置嵌套事务
TransactionStatus status = transactionManager.getTransaction(defaultTransactionDefinition);
// TODO 检查菜单是否被其他菜单引用
try {
    categoryService.removeMenusByIds(Arrays.asList(catIds));
    //提交事务
    transactionManager.commit(status);
}catch (Exception e){
    //回滚事务
    transactionManager.rollback(status);
    return R.error().put("更新失败",e.getMessage());
}

return R.ok();