在需要填充的字段上 添加注解
@TableField(fill = FieldFill.INSERT) //创建时填充
@TableField(fill = FieldFill.UPDATE) //更新时填充
/**
* 创造人
*/
@TableField(fill = FieldFill.INSERT)
private String creator;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新者
*/
@TableField(fill = FieldFill.UPDATE)
private String updater;
/**
* 更新时间
*/
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;
创建MyMetaObjectHandler
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("createTime", new Date(), metaObject);
try {
this.setFieldValByName("creator", "caLoginUser.getUserid()", metaObject);
} catch (Exception e) {
this.setFieldValByName("creator", "", metaObject);
log.error("自动填充creator失败");
log.error(e.getMessage());
}
}
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime", new Date(), metaObject);
try {
this.setFieldValByName("updater", "", metaObject);
} catch (Exception e) {
log.error("自动填充updater失败");
log.error(e.getMessage());
}
}
}
这里填充creater和updater时候 记得try catch 因为有时候这里可能是空字段