虽然使用了strictUpdateFill,但如果待更新的字段内容不为null,mp并没有自动填充,比如update_time字段,在insert时候已经被填充了时间,当进行更新时,update_time内容没有更新,解决办法很简单,重写strictFillStrategy方法即可,如:
@Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); this.strictInsertFill(metaObject, "operator", String.class, "Jetty"); } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill ...."); this.strictUpdateFill(metaObject, "operator", String.class, "Tom"); } @Override public MetaObjectHandler strictFillStrategy(MetaObject metaObject, String fieldName, Supplier<?> fieldVal) { //if (metaObject.getValue(fieldName) == null) 注释该行即可 { Object obj = fieldVal.get(); if (Objects.nonNull(obj)) { metaObject.setValue(fieldName, obj); } } return this; } }