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

Mybatisplus同时向两张表里插入数据[事务的一致性]

一、需求:把靶器官的数据,单独拿出来作为一个从表,以List的方式接收这段数据;

此时分析,是需要有两个实体的,一个是主表的实体,一个是从表的实体,并在主表实体新增一个List 字段来接收从表的实体数据 -----> 

二、建立两个实体:SysResidentReplenish (主表实体)、SysResidentReplenishDetail(从表实体)

/** 靶器官筛查情况列表 */@TableField(exist = false)private List<SysResidentReplenishDetail> targetList;

三、如下为原型图

四、分析实现:当前端传过来的数据,如何同时保存在主表 和 从表中

此处注意:不能采用先存入一张表,再存入另一张表的状态;

要注意事务的特性,即:当有一张表 插入不成功的时候,另一张表存入的数据可以回滚。

如此,基于springBoot 项目 采用的方式

接口继承了IService 

IService 中有许多的方法

五、重写方法

serviceImpl 代码:

  /*** @描述:  重写 IService中 boolean insert(T var1);* 重写的插入方法实现了事务管理,当子表插入失败,主表已经插入的数据会回滚* @param* @return boolean*/public boolean save(SysResidentReplenish sysResidentReplenish){try {sysResidentReplenishMapper.insert(sysResidentReplenish);List<SysResidentReplenishDetail> targetList = sysResidentReplenish.getTargetList();for (SysResidentReplenishDetail sysResidentReplenishDetail:targetList) {sysResidentReplenishDetail.setRecordId(sysResidentReplenish.getId());sysResidentReplenishDetailMapper.insert(sysResidentReplenishDetail);}}catch (Exception e){System.out.println("error插入子表失败:"+e.getMessage());return false;}return true;}

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

相关文章:

  • 天眼销:精准的企业名录
  • TypeError: Cannot read properties of null (reading ‘shapeFlag‘)
  • 视频监控平台EasyCVR多场景应用,AI视频分析技术助力行业升级转型
  • 如何搭建外网可访问的Serv-U FTP服务器,轻松远程共享文件!
  • c++--类型的基础
  • Python with提前退出:坑与解决方案
  • Vue3-provide和inject
  • Python与设计模式--适配器模式
  • 大模型能否生成搜索引擎的未来?
  • 鸿蒙开发-ArkTS 语言-状态管理
  • 一篇文章带你掌握MongoDB
  • 删除docker镜像
  • 力扣 --- 删除有序数组中的重复项 II
  • Opencv图像处理(全)
  • Flutter桌面应用开发之毛玻璃效果
  • 基于C#实现优先队列
  • ssm+vue的仓库在线管理系统的设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。
  • 什么是木马
  • Pinia仓库统一管理
  • [论文阅读]VoxSet——Voxel Set Transformer
  • 【开源】基于Vue.js的医院门诊预约挂号系统的设计和实现
  • 1、Mysql架构与历史
  • 考试复习
  • 使用Docker一键安装MySQL与Nginx脚本
  • VMware系列:Vmware vSphere常见问题及解决办法
  • 基于web宠颐生宠物医院系统设计与实现
  • 二、Gitee使用方法
  • 【C++】string模拟
  • python高级练习题库实验1(A)部分
  • 数据库应用:MongoDB 数据备份与恢复