公共字段自动填充,例如更新时间,创建时间,创建人等

发布时间 2023-04-01 20:57:24作者: 罗|马

 

 

 加这个注解,可以创建,可以修改,也可以创建与修改时:

 @TableField(fill = FieldFill.INSERT_UPDATE)//创建与修改时自动填充
    private LocalDateTime updateTime;

然后编写一个类,实现MetaObjectHandler接口重写insert和update方法例如:

mport com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.rome.backend.common.BaseContext;//自己编写的类可以用ThrowLcal
import org.apache.ibatis.reflection.MetaObject;

import org.springframework.stereotype.Component;


import java.time.LocalDateTime;

@Component
public class DateConfig implements MetaObjectHandler {


    /**
     * 使用mp做添加操作时候,这个方法执行
     * @param metaObject
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        //设置属性值             属性名         属性值            
        this.setFieldValByName("createTime",LocalDateTime.now(),metaObject);
        this.setFieldValByName("updateTime",LocalDateTime.now(),metaObject);
        this.setFieldValByName("createUser", BaseContext.getCurrentId(),metaObject);
        this.setFieldValByName("updateUser",BaseContext.getCurrentId(),metaObject);

    }

    /**
     * 使用mp做修改操作时候,这个方法执行
     * @param metaObject
     */
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime",LocalDateTime.now(),metaObject);
        this.setFieldValByName("updateUser",BaseContext.getCurrentId(),metaObject);
    }

}