0
点赞
收藏
分享

微信扫一扫

我爱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("新增通道失败");
}
}
举报

相关推荐

0 条评论