-
背景:使用MyBatis-Plus更新一个字段(类型为LocalDateTime)为null,但是数据库依旧是之前的时间,没有更新为null成功
-
查找问题:由 MyBatis-Plus 的字段更新策略(FieldStrategy)所决定的默认行为,即默认情况下,MyBatis-Plus 使用
FieldStrategy.NOT_NULL,即自动跳过所有 null 值字段,导致无法更新为 null -
解决方案:
-
方案一:通过
@TableField注解修改单个字段的更新策略java@TableField(value = "out_start_date", insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED) private LocalDateTime outStartDate; -
方案二:使用 UpdateWrapper 显式指定字段更新
javabarnInfoMapper.update(null, new UpdateWrapper<BarnInfo>().eq("id", 10010L).set("outStartDate", null)); -
方案三:全局策略配置:统一管理字段处理行为,在 application.yml 中配置全局字段策略【注意:可能导致意外的 null 写入】
javamybatis-plus: global-config: db-config: field-strategy: IGNORED
MyBatis-Plus 更新字段为 null 为何失效?
胡闹542025-12-28 8:18
相关推荐
小蒜学长8 分钟前
“喵汪联盟”宠物领养系统的设计与实现(代码+数据库+LW)程序员黑豆9 分钟前
Java字符串常量池完全指南:原理、intern()方法与性能优化最佳实践AI人工智能+电脑小能手12 分钟前
大白话说Java设计模式-14-适配器模式(业务实战篇)TDengine (老段)23 分钟前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、SparkxbgRS3 小时前
springboot的自动装配小白勇闯网安圈9 小时前
Django 响应对象、文件上传与类视图努力的小雨10 小时前
同一份 SQL 跑多套环境:Ksql 变量怎么用才安全嘻哈∠※10 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现科技绘图10 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比ltl11 小时前
数据库作为 LLM 记忆体:语义缓存、RAG 与一致性