-
背景:使用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
相关推荐
zuoerjinshu5 小时前
sql实战解析-sum()over(partition by xx order by xx)毕设源码-邱学长5 小时前
【开题答辩全过程】以 基于Java的学校住宿管理系统的设计与实现为例,包含答辩的问题和答案NocoBase6 小时前
【2.0 教程】第 1 章:认识 NocoBase ,5 分钟跑起来兑生7 小时前
【灵神题单·贪心】1481. 不同整数的最少数目 | 频率排序贪心 | Javadaidaidaiyu7 小时前
一文学习 Spring 声明式事务源码全流程总结Hoshino.417 小时前
基于Linux中的数据库操作——下载与安装(1)零雲8 小时前
java面试:了解抽象类与接口么?讲一讲它们的区别Oueii9 小时前
Django全栈开发入门:构建一个博客系统未来龙皇小蓝9 小时前
【MySQL-索引调优】11:Group by相关概念2401_831824969 小时前
使用Fabric自动化你的部署流程