MyBatis-Plus设置自动填充时间
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", new Date(), metaObject); this.setFieldValByName("updateTime", new Date(), metaObject); } @Override public void updateFill(MetaObject metaObject) { log.info("start update fill..."); this.setFieldValByName("updateTime",new Date(), metaObject); } }