当前使用版本 mybatis-plus 3.5.6 当前环境信息 jdk 17 springboot 3.1.11 mysql 8.0.37 描述bug现象 ` @Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { metaObject.setValue("createTime", LocalDateTime.now()); //this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); }
@Override
public void updateFill(MetaObject metaObject) {
metaObject.setValue("updateTime", LocalDateTime.now());
//this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
} ` 提供问题复现步骤
提供完整堆栈日志(可选)
提供问题复现工程(可选) 请尽量提供复现工程,减少大家排错的时间.
Comment From: miemieYaho
点strictInsertFill看源码
Comment From: muyu66
点
strictInsertFill看源码
源码有什么神奇所在嘛?strictInsertFill是当值为null时可设置。strictUpdateFill也是如此的话,和strictInsertFill又有什么区别呢
default 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;
}