MyBatis-Plus如何自动填充实体类时间

发布时间 2023-07-13 20:18:37作者: 护发师兄

MyBatis-Plus如何自动填充实体类时间

  1. 创建实体类,相关字段添加@TableField注解,并标注自动填充时机
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class Info implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 信息标题
     */
    private String title;

    /**
     * 信息内容
     */
    private String content;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.UPDATE)
    private LocalDateTime updateTime;
}
  1. 编写MyMetaObjectHandler
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {

    /********************************
     *  @method    : insertFill
     *  @function  : 插入时间填充
     *  @parameter : [metaObject]
     *  @return    : void
     *  @date      : 2023/7/12 17:27
     ********************************/
    @Override
    public void insertFill(MetaObject metaObject) {
        this.setFieldValByName("createTime", LocalDateTime.now(), metaObject);
    }

    /********************************
     *  @method    : updateFill
     *  @function  : 更新时间填充
     *  @parameter : [metaObject]
     *  @return    : void
     *  @date      : 2023/7/12 17:27
     ********************************/
    @Override
    public void updateFill(MetaObject metaObject) {
        this.setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
    }
}

这样插入数据的时候就会自动添加上时间了。