当前位置: 首页 > news >正文

系列四十二、Spring的事务传播行为案例演示(二)#REQUIRED

一、演示Spring的默认传播行为(REQUIRED)

1.1、运行之前表中的数据

1.2、StockServiceImpl

/*** @Author : 一叶浮萍归大海* @Date: 2023/10/30 15:43* @Description:*/
@Service(value = "stockServiceREQUIRED")
public class StockServiceImpl extends ServiceImpl<StockMapper, StockDO> implements StockService {@Resourceprivate StockMapper stockMapper;@Resourceprivate IntegralService integralService;@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)@Overridepublic void reduceStock(Long id, Integer num) {try {// 减库存StockDO dbStock = stockMapper.selectById(id);StockDO updateStock = new StockDO();BeanUtils.copyProperties(dbStock, updateStock);updateStock.setNum(dbStock.getNum() - num);stockMapper.updateById(updateStock);// 增加积分IntegralDO updateIntegral = new IntegralDO();updateIntegral.setPreIntegral(0);updateIntegral.setCurrentIntegral(1000);updateIntegral.setUserId(1L);integralService.addIntegral(updateIntegral);// 模拟异常int i = 10 / 0;} catch (BeansException e) {throw new RuntimeException(e);}}
}

1.3、IntegralServiceImpl

/*** @Author : 一叶浮萍归大海* @Date: 2023/10/30 15:42* @Description:*/
@Service(value = "integralServiceREQUIRED")
public class IntegralServiceImpl extends ServiceImpl<IntegralMapper, IntegralDO> implements IntegralService {@Resourceprivate IntegralMapper integralMapper;@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class)@Overridepublic void addIntegral(IntegralDO updateIntegral) {integralMapper.insert(updateIntegral);}
}

1.4、测试结果

1.5、数据变化 

stock表中的库存数量没有发生变化,integral(积分表)表没有增加积分。符合预期

http://www.lryc.cn/news/211707.html

相关文章:

  • oracle rac-归档满处理
  • Python Django 之全局配置 settings 详解
  • 挑选MES系统供应商,需要考虑哪些重要因素?
  • Ai创作系统ChatGPT网站源码+图文搭建教程+支持GPT4.0+支持ai绘画(Midjourney)
  • 基于计算机视觉的坑洼道路检测和识别-MathorCup A(深度学习版本)
  • 【考研数学】概率论与数理统计 —— 第七章 | 参数估计(1,基本概念及点估计法)
  • 获取文本长度
  • python html(文件/url/html字符串)转pdf
  • Spring概述
  • Linux网卡
  • 【Python机器学习】零基础掌握ElasticNet变量选择回归器
  • 【数据结构】模拟实现Vecotr
  • Qt开发: 利用Qt的charts模块绘制曲线、饼图、柱状图、折线图等各种图表
  • Redis:加速你的应用响应时间,提升用户体验
  • 乐鑫 SoC 内存映射入门
  • 蓝凌EIS智慧协同平台saveImg接口存在任意文件上传漏洞
  • 【SEC 学习】美化 Linux 终端
  • 【Unity小技巧】可靠的相机抖动及如何同时处理多个震动(附项目源码)
  • 【51单片机】51单片机概述(学习笔记)
  • make和new的区别
  • vue3获取页面路径
  • 基于STM32闭环步进电机控制系统设计
  • Java中的队列:各种类型及使用场景
  • MappingMongoConverter原生mongo 枚举类ENUM映射使用的是name
  • Java中的锁:类型,比较,升级与降级
  • STM32:串口轮询模式、中断模式、DMA模式和接收不定长数据
  • 【OJ for Divide and Conquer】OJ题解
  • 使用 Sealos 一键部署 Kubernetes 集群
  • 解读电力系统中的GPS北斗卫星同步时钟系统
  • 原子类:Java并发编程的利器