MyBatis-Plus更新update自动填充功能无效解决办法

虽然使用了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;
    }
}


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://tranfer.cn/?id=90