-
背景:使用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
相关推荐
小冷coding29 分钟前
【MySQL】MySQL 插入一条数据的完整流程(InnoDB 引擎)Elias不吃糖41 分钟前
Java Lambda 表达式情缘晓梦.1 小时前
C语言指针进阶鲨莎分不晴1 小时前
Redis 基本指令与命令详解专注echarts研发20年2 小时前
工业级 Qt 业务窗体标杆实现・ResearchForm 类深度解析南知意-3 小时前
IDEA 2025.3 版本安装指南(完整图文教程)码农水水3 小时前
蚂蚁Java面试被问:混沌工程在分布式系统中的应用海边的Kurisu3 小时前
苍穹外卖日记 | Day4 套餐模块毕设源码-邱学长4 小时前
【开题答辩全过程】以 走失儿童寻找平台为例,包含答辩的问题和答案周杰伦的稻香4 小时前
MySQL中常见的慢查询与优化