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@Componentpublic class MyMetaObjectHandler implements MetaObjectHandler {@Overridepublic void insertFill(MetaObject metaObject) {log.info("start insert fill...");this.setFieldValByName("createTime", DateUtil.now(), metaObject);this.setFieldValByName("updateTime", DateUtil.now(), metaObject);}@Overridepublic void updateFill(MetaObject metaObject) {log.info("start update fill...");this.setFieldValByName("updateTime", DateUtil.now(), metaObject);}}
