我爱java系列---【springBoot中手动开启事务】


springBoot中手动开启事务,直接看例子:

 @Autowired DataSourceTransactionManager dataSourceTransactionManager; @Autowired TransactionDefinition transactionDefinition; TransactionStatus transactionStatus = null;

    @Override
    public void add(ChannelDetail channelDetail) {

        try {
            log.info("通道管理实现类-新增-入参:channelDetail:{}", channelDetail);
            //手动开启事务
            transactionStatus = dataSourceTransactionManager.getTransaction(transactionDefinition);
            //新增通道信息
            channelMapper.insertSelective(channelDetail.getChannel());
            //生效时间默认为当天生效
            ChannelPriceBatch channelPriceBatch = channelDetail.getChannelPriceBatch();
            channelPriceBatch.setChannelId(channelDetail.getChannel().getId());
            channelPriceBatchMapper.insert(channelPriceBatch);
            //手动提交事务
            dataSourceTransactionManager.commit(transactionStatus);
        } catch (Exception e) {
            log.error(e.getMessage(), e);
            //手动回滚事务
            dataSourceTransactionManager.rollback(transactionStatus);
            throw new RuntimeException("新增通道失败");
        }
    }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM