MyBatis-Plus设置自动填充时间

作者: adm 分类: java 发布时间: 2022-09-18

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);
	}
}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!