mybatis plus字段填充其实就是持久化时给对象字段属性设置默认值,编写配置类实现 MetaObjectHandler 接口,重写 insertFill 或者 updateFill 方法:
一、编写配置类,重写 insertFill 和 updateFill 方法:
package com.svw.newsvwuc.assess.configure;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
import com.baomidou.mybatisplus.core.injector.ISqlInjector;
import com.baomidou.mybatisplus.extension.injector.LogicSqlInjector;
import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Date;
/**
* <p>ClassName: MyBatisPlusConfigure</p>
*/
@Slf4j
@Configuration
public class MyBatisPlusConfigure implements MetaObjectHandler {
/**
* <p> mybatis-plus sql注入器 </p>
* <p> mybatis-plus 注入逻辑删除 </p>
**/
@Bean
public ISqlInjector sqlInjector() {
return new LogicSqlInjector();
}
/**
* <p> 插入时自动填充创建日期和修改日期 </p>
**/
@Override
public void insertFill(MetaObject metaObject) {
log.info("=================插入记录自动填充创建和更新日期 start=================");
Date date=new Date();
this.setFieldValByName("createDate",date,metaObject);
this.setFieldValByName("updateDate",date,metaObject);
}
/**
* <p> 修改时自动设置修改日期 </p>
**/
@Override
public void updateFill(MetaObject metaObject) {
log.info("=================修改记录自动设置更新日期 start=================");
this.setFieldValByName("updateDate",new Date(),metaObject);
}
}
二、使用字段填充:
在实体类中属性字段加入填充注解 fill = FieldFill.INSERT或fill = FieldFill.UPDATE 即可,当进行新增或更新操作会赋值默认值,不需要开发人员手动赋值
@ApiModelProperty(value = "建立时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@TableField(value = "CREATE_DATE", fill = FieldFill.INSERT)
private Date createDate;
@ApiModelProperty(value = "更新时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@TableField(value = "UPDATE_DATE", fill = FieldFill.INSERT_UPDATE)
private Date updateDate;
网友评论