mybatis plus FieldFill.DEFAULT 也会自动填充修复

    技术2023-09-30  73

    package com.yunbao.kpiapi.config; import com.baomidou.mybatisplus.annotation.FieldFill; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.lang.annotation.Annotation; import java.lang.reflect.Field; import java.time.LocalDateTime; /** * @author: duzesheng * @date: 2019/12/16 * @description: mybatis plus自动填充公共字段 */ @Component public class MetaObjectHandlerConfig implements MetaObjectHandler { /** * 新增时自动填充 * @param metaObject */ @Override public void insertFill(MetaObject metaObject) { exeFill("createTime", LocalDateTime.now(), metaObject); exeFill("updateTime", LocalDateTime.now(), metaObject); exeFill("flag", "0", metaObject); //订单到期时间(15分钟) exeFill("overTime", LocalDateTime.now().plusMinutes(15), metaObject); } /** * 更新时自动填充 * @param metaObject */ @Override public void updateFill(MetaObject metaObject) { exeFill("updateTime", LocalDateTime.now(), metaObject); } public void exeFill(String fieldName, Object fieldVal, MetaObject metaObject){ if (metaObject.hasSetter(fieldName) && metaObject.hasGetter(fieldName)) { Object classObj = metaObject.getOriginalObject(); Field[] declaredFields = classObj.getClass().getDeclaredFields(); if(declaredFields!=null){ for(Field field:declaredFields){ if(field.getName().equals(fieldName)){ TableField tableField = field.getAnnotation(TableField.class); if(tableField!=null && tableField.fill()!=FieldFill.DEFAULT){ this.setFieldValByName(fieldName, fieldVal, metaObject); } } } } } } }

     

    Processed: 0.010, SQL: 9