遵守诺言就象保卫你的荣誉一样。——巴尔扎克
官方文档里说首先需要加@TableField注解并指定fill的值

对应的值在com.baomidou.mybatisplus.annotation.FieldFill这个枚举里
例如我这里gmtCreate字段需要在新增的时候自动填充,就使用FieldFill.INSERT
然而我需要让gmtModified字段在新增和修改的时候都自动填充,就使用FieldFill.INSERT_UPDATE
不过,加了注解后咱们还得去注入一个com.baomidou.mybatisplus.core.handlers.MetaObjectHandler
完整代码如下
| package com.ruben.simpleideaboot.config;
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import com.baomidou.mybatisplus.core.handlers.StrictFill;
 import com.baomidou.mybatisplus.core.toolkit.LambdaUtils;
 import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
 import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
 import com.ruben.simpleideaboot.pojo.User;
 import org.apache.ibatis.reflection.MetaObject;
 import org.apache.ibatis.reflection.property.PropertyNamer;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 import java.time.LocalDateTime;
 import java.util.Arrays;
 
 
 
 
 
 
 
 @Configuration
 public class MybatisPlusConfig {
 
 
 
 
 
 
 
 @Bean
 public MybatisPlusInterceptor mybatisPlusInterceptor() {
 MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
 PaginationInnerInterceptor innerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
 
 innerInterceptor.setOverflow(true);
 
 innerInterceptor.setMaxLimit(200L);
 interceptor.addInnerInterceptor(innerInterceptor);
 return interceptor;
 }
 
 @Bean
 public MetaObjectHandler metaObjectHandler() {
 return new MetaObjectHandler() {
 
 
 
 
 
 @Override
 public void insertFill(MetaObject metaObject) {
 
 this.strictInsertFill(findTableInfo(metaObject), metaObject,
 Arrays.asList(
 
 StrictFill.of(PropertyNamer.methodToProperty(LambdaUtils.resolve(User::getGmtCreate)
 .getImplMethodName()), LocalDateTime::now, LocalDateTime.class),
 
 StrictFill.of("gmtModified", LocalDateTime.class, LocalDateTime.now())
 ));
 }
 
 
 
 
 
 
 @Override
 public void updateFill(MetaObject metaObject) {
 
 this.strictUpdateFill(metaObject, "gmtModified", () -> LocalDateTime.now(), LocalDateTime.class);
 }
 };
 }
 
 
 }
 
 | 
然后调用insert方法或者update方法就会自动更新上去啦