- 实体类
@Data // lombok依赖 public class User{ @TableField( fill = FieldFill.INSERT) private Integer isDelete; @TableField(fill = FieldFill.INSERT_UPDATE) private Date createTime; }
- 实现元对象处理器接口:
com.baomidou.mybatisplus.core.handlers.MetaObjectHandlermybatis
@Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.info("start insert fill ...."); this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用) this.fillStrategy(metaObject, "isDelete", 1); // 也能够使用(3.3.0 该方法有bug请升级到以后的版本如`3.3.1.8-SNAPSHOT`) /* 上面选其一使用,下面的已过期(注意 strictInsertFill 有多个方法,详细查看源码) */ //this.setFieldValByName("operator", "Jerry", metaObject); //this.setInsertFieldValByName("operator", "Jerry", metaObject); } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill ...."); this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐使用) this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也能够使用(3.3.0 该方法有bug请升级到以后的版本如`3.3.1.8-SNAPSHOT`) /* 上面选其一使用,下面的已过期(注意 strictUpdateFill 有多个方法,详细查看源码) */ //this.setFieldValByName("operator", "Tom", metaObject); //this.setUpdateFieldValByName("operator", "Tom", metaObject); } }
- TableField
public enum FieldFill { /** * 默认不处理 */ DEFAULT, /** * 插入填充字段 */ INSERT, /** * 更新填充字段 */ UPDATE, /** * 插入和更新填充字段 */ INSERT_UPDATE }