import cn.hutool.core.util.ReflectUtil;
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.reflect.Field;
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
/**
* 新增时填充
*/
public void insertFill(MetaObject metaObject) {
//获取所有gat字段名
String[] getterNames = metaObject.getGetterNames();
//获取所有set字段名
String[] setterNames = metaObject.getSetterNames();
//获取指定字段的值
Object checkStatus = this.getFieldValByName("checkStatus", metaObject);
//修改指定字段赋值
this.setFieldValByName("checkStatus", "AUDIT", metaObject);
// 或者
this.strictInsertFill(metaObject, "checkStatus", String.class, "AUDIT"); // 起始版本 3.3.0(推荐使用)
// 或者
this.strictInsertFill(metaObject, "checkStatus", () -> "AUDIT", String.class); // 起始版本 3.3.3(推荐)
//获取entity实体
Object originalObject = metaObject.getOriginalObject();
//通过反射获取实体字段
Field[] fields = ReflectUtil.getFields(originalObject.getClass());
for (Field field : fields) {
//获取实体字段注解
TableField annotation = field.getAnnotation(TableField.class);
if (annotation != null) {
//通过反射设置值
ReflectUtil.setFieldValue(originalObject, field, "AUDIT");
}
}
}
/**
* 更新时填充
*/
public void updateFill(MetaObject metaObject) {
}
}