MybatisPlus-自动填充字段(时间字段/普通字段)

  • 实体类
@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
}
相关文章
相关标签/搜索