springboot 事务管理

很多操作数据库的工具可以保证事务性,这里不讲。
这里讲的是,业务逻辑相关的东西,举例:你更新表A中的字段status,同时希望改变表B中的status字段,如果中间更新失败,则都不更新。

首先在应用类上添加注解@EnableTransactionManagement,开启springboot事务管理功能

@SpringBootApplication
@EnableTransactionManagement
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}

然后在接口上添加@Transactional注解

demo如下:

    @Transactional(rollbackFor = Exception.class)
    public ResponseBean setStatusById(FlowVo flowVo) {
        String source = flowVo.getSource();
        Integer status = flowVo.getStatus();
        String id = flowVo.getId();
        if (source == null || id == null || status == null){
            return ResponseBean.builder().code(-1).data("param error").build();
        }
        Query query = new Query(Criteria.where("id").is(flowVo.getId()));
        Update update = new Update();
        update.set("status", status);
        // 更新A表中的status
        boolean ret = mongoUtils.update(query, update, FlowEntity.class, getCollection(source));

        Query query1 = new Query(Criteria.where("flowId").is(flowVo.getId()));
        // 更新B表中的status
        mongoUtils.update(query1, update, FlowRelationEntity.class, getFlowRelationCollection(source));
        return ResponseBean.builder().code(100).data(ret).build();
    }

详细使用参考:https://www.cnblogs.com/xd502djj/p/10940627.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值