一、问题描述
最近在基于SpringBoot与Mybatis-Plus开发一个CRM系统时遇到了需要将字段更新为空值的情况,后端代码的业务逻辑也是正确的,但是需要更新为空值的字段仍然保持原本的值,在控制台打印出SQL日志后发现设置为空值的字段就没有参与更新。
二、解决方法
在实体类中需要更新为空值的字段上加入@TableField(updateStrategy = FieldStrategy.IGNORED)
注解即可。
在Mybatis-Plus的更新方法中,如果没有提前指定的话,更新后的结果为空值时会被自动过滤掉,因此要在实体类的字段上提前声明。
添加注解后更新的结果:
总结
通过解决了无法将字段更新为空值的问题后,更加深入的理解了Mybatis-Plus的执行方法,以后遇到无法更新字段为空值时要先想是否声明了该字段可以更新为空值。