-Plus FieldStrategy有三种策略:
- IGNORED:忽略。当FieldStrategy策略为IGNORED时,表示忽略该字段的空值判断,即无论实体对象的值为空还是非空,都会进行新增、更新操作
- NOT_NULL:非NULL。当FieldStrategy策略为NOT_NULL时,表示字段不能为空,如果实体对象的值为空,则不会进行新增、更新操作。
- NOT_EMPTY:非空。当FieldStrategy策略为NOT_EMPTY时,表示字段不能为空字符串或null值,如果实体对象的值为空字符串或null,则不会进行新增、更新操作。
注意:updateById()方法的默认策略为NOT_NULL
2.配置
(1)全局配置field-strategy
在文件中添加:
mybatis-plus:
global-config:
#字段策略 0:"忽略判断",1:"非 NULL 判断",2:"非空判断"
field-strategy: 0
这样做是全局性配置,会对所有的字段都忽略判断,如果一些字段不想要修改,但是传值的时候没有传递过来,就会被更新为null,可能会影响其他业务数据的正确性。
(2)对某个字段设置单独的field-strategy
根据具体情况,在需要更新的字段中调整验证注解,如验证非空:
@TableField(strategy=FieldStrategy.NOT_EMPTY)
我们只需要在需要更新为null的字段上设置忽略策略:
@TableField(strategy = )
private LocalDateTime time;
此时,使用mybatis-plus中的updateById方法便可以更新成功,当参数实体类中的time字段为null时,数据库中的数据也为null