SpringBoot2.0(十四):MybatisPlus之公共字段自动填充

第一步:

需要在填充的公共字段上面添加@TableField注解

DEFAULT(0, “默认不处理”),
INSERT(1, “插入填充字段”),
UPDATE(2, “更新填充字段”),
INSERT_UPDATE(3, “插入和更新填充字段”);

@TableField(fill = FieldFill.INSERT_UPDATE)
private Integer age;

第二步:

自定义实现类 MyMetaObjectHandler:

import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

/**
 * 自定义公共字段填充处理器
 *
 * @author xiaofei
 */
@Component
public class MyMetaObjectHandler extends MetaObjectHandler {

    /**
     * 插入填充
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        // 获取公共字段的值
        Object fieldValue = getFieldValByName("age", metaObject);
        // 判断是否为空,如果为空则进行填充
        if (fieldValue == null) {
            System.err.println("====满足填充条件====");
            setFieldValByName("age", 66, metaObject);
        }
    }

    /**
     * 修改填充
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        Object fieldValue = getFieldValByName("age", metaObject);
        if (fieldValue == null) {
            System.err.println("====满足填充条件====");
            setFieldValByName("age", 66, metaObject);
        }
    }
}

第三步:

测试添加:
SpringBoot2.0(十四):MybatisPlus之公共字段自动填充_第1张图片
SpringBoot2.0(十四):MybatisPlus之公共字段自动填充_第2张图片

测试修改(修改ID=2的):
SpringBoot2.0(十四):MybatisPlus之公共字段自动填充_第3张图片

SpringBoot2.0(十四):MybatisPlus之公共字段自动填充_第4张图片

你可能感兴趣的:(SpringBoot)