-
背景:使用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
相关推荐
蛋蛋的就会顺顺的5 小时前
hot100 p0——栈,贪心算法,动态规划余槐i6 小时前
PostgreSQL 函数索引报错 must be immutable:3种绕法与代价数据库小学妹6 小时前
PostgreSQL表膨胀怎么办?autovacuum清不动的根因与排查命令mister_guo6 小时前
MySQL-1267错误:排序规则冲突的原因与解决方案需要8266 小时前
Spring Bean 生命周期:从实例化到销毁的完整钩子小 黄 鸡6 小时前
HashMap 面试必会知识点详解(JDK 8)骇客野人6 小时前
在麒麟操作系统上 分别安装 jdk1.8, 达梦数据库,redis ,memcache 的操作实施方案和步骤美狐美颜SDK开放平台8 小时前
直播APP如何实现美白滤镜功能?视频美颜SDK技术开发方案详解伯恩bourne8 小时前
Spring Boot Bean 注册的两种方式:@Component 家族 vs @Configuration + @Beansilvamux_8 小时前
curl 测试 OpenAI 兼容 API 的完整流程