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; }