Mybatis 只会更新不为空的字段,如果字段为空则更新失败

解决办法:

1)setFieldValByName  缺点:没法指定字段类型 如果updateTime 既有date 类型又有localdate类型,则无法使用

this.setFieldValByName("updateTime", new Date(),metaObject);

2)重写  strictUpdateFill 方法  快捷建 ctl +o 

   @Override
    public MetaObjectHandler strictFillStrategy(MetaObject metaObject, String fieldName, Supplier<?> fieldVal) {
        Object obj = fieldVal.get();
        if (Objects.nonNull(obj)) {
            metaObject.setValue(fieldName, obj);
        }
        return this;
    }