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

Jpa 删除之@Version注解的实体类无法删除的问题

最近在做数据归档,因为表里的数据太大了,然后就写了个批处理去跑。
结果发现,最新的数据都能从原表中删除,但是2年前的数据却无法删除,我是使用 jpa 中的 JpaRepository.deleteInBatch 进行删除的。

为什么2年前的数据无法删除呢,因为2年前我在表里加了乐观锁 revison 字段,对应实体类使用了 @Version reviosn.
当时在表里新增这列的时候,没有使用默认值,所以老数据 revision 值都为 null , 所以使用上面的方法就无法删除。

通过查询得出,

在JPA中,如果一个实体类映射了一个数据库表,并且该表有一个版本字段,那么在执行删除操作时,JPA默认不会删除version为空的数据。这是因为JPA认为,version为空的数据可能是历史数据,或者是在并发修改过程中被其他事务删除的数据。为了避免误删数据,JPA默认不删除version为空的数据。

所以,先更新数据,把 revision 为 null 更新为0,再去删除就正常了。

http://www.xdnf.cn/news/683785.html

相关文章:

  • 远程办公如何实现零监控?深度拆解“吱吱”不会被监控的通讯办公软件
  • 在RK3588上实现YOLOv8n高效推理:从模型优化到GPU加速后处理全解析
  • 电机控制杂谈(26)——电机驱动系统的编码器的测速噪声
  • RK3568DAYU开发板-驱动平台驱动案例--PWM
  • 【Linux】(1)—进程概念-①冯诺依曼体系结构
  • 想查看或修改 MinIO 桶的匿名访问权限(public/private/custom)
  • java基础学习(十八)
  • 大模型微调(面经总结)
  • 代码风格指南
  • 聚焦北京央美备考画室:探寻实力之巅
  • 码蹄集——圆周率II、三个非负整数
  • PCB设计自检表
  • 基于心理健康与数字行为数据的多维度分析
  • JAVA运算符详解
  • Oracle向PG转移建议以及注意点
  • 57页 @《人工智能生命体 新启点》中國龍 原创连载
  • IvorySQL 核心技术解读:双 Parser 架构如何定义数据库兼容性?
  • python训练营打卡第36天
  • 竞赛小算法总结(二):gcdlcm,拓展欧几里得线性同余,逆元(含代码详解)
  • AE的ai图层导到Ai
  • spring4第2课-ioc控制反转-依赖注入,是为了解决耦合问题
  • WIN10 安装dify ollama搭建工作流agent
  • 两种主流检索技术:BM25(基于关键词匹配)和向量相似度检索
  • LVGL(Flex布局)
  • Docker修改镜像存放位置
  • qiankun 子应用怎样通过 props拿到子应用【注册之后挂载之前】主应用中发生变更的数据
  • vue2轮播图组件
  • 计算机网络实验课(二)——抓取网络数据包,并实现根据条件过滤抓取的以太网帧,分析帧结构
  • 如何检查液质联用仪LCMS的真空度
  • 提升前端性能:减少DOM操作