我愛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