MyBatis-Plus设置自动填充时间@TableField(fill = FieldFill.INSERT)没有效果或新增没问题查询报错解决方案
1、引入maybatis-plus依赖
2、创建实体类
在需要自动填充的字段加上注解
/**
* 创建时间 如果是LocalDateTime类型 要加@DateTimeFormat不加这个注解查询的时候会报错
*/
@ApiModelProperty(value = "创建时间")
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新时间
*/
@ApiModelProperty(value = "更新时间")
@DateTimeFormat(pattern = DateUtil.PATTERN_DATETIME)
@JsonFormat(pattern = DateUtil.PATTERN_DATETIME)
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
3.实现填充器(没有这一步数据库不会自动插入)
package org.springblade.police.util;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springblade.core.tool.utils.DateUtil;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.Date;
@Slf4j
@Component
public class MyMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
log.info("start insert fill...");
this.setFieldValByName("createTime", DateUtil.now(), metaObject);
this.setFieldValByName("updateTime", DateUtil.now(), metaObject);
}
@Override
public void updateFill(MetaObject metaObject) {
log.info("start update fill...");
this.setFieldValByName("updateTime", DateUtil.now(), metaObject);
}
}