第一步:
需要在填充的公共字段上面添加@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);
}
}
}
第三步:
测试添加:
测试修改(修改ID=2的):