-
背景:使用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
相关推荐
草履虫建模11 小时前
力扣算法 1768. 交替合并字符串fen_fen14 小时前
Oracle建表语句示例qq_2975746714 小时前
【实战教程】SpringBoot 实现多文件批量下载并打包为 ZIP 压缩包老毛肚14 小时前
MyBatis插件原理及Spring集成学嵌入式的小杨同学14 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)lang2015092814 小时前
JSR-340 :高性能Web开发新标准Re.不晚14 小时前
Java入门17——异常缘空如是14 小时前
基础工具包之JSON 工厂类追逐梦想的张小年15 小时前
JUC编程04好家伙VCC15 小时前
### WebRTC技术:实时通信的革新与实现####webRTC(Web Real-TimeComm