MyBatis-Plus如何自动填充实体类时间
- 创建实体类,相关字段添加
@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;
}
- 编写
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);
}
}
这样插入数据的时候就会自动添加上时间了。