mybatis-plus 实现自动填充
一、说明
在数据库中,有一些字段 需要用到自动填充的功能类似如下:
-
gmt_create:创建时间yre
-
gmt_modified:修改时间
这时候我们可以采用 MyBatis-Plus 中的字段自动填充功能去实现
二、实现
1.在要自动填充的字段上添加注解 @TableField
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private Date gmtCreate;
/**
* 更新时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date gmtModified;
2.注解的fill可选项
/**
* 默认不处理
*/
DEFAULT,
/**
* 插入填充字段
*/
INSERT,
/**
* 更新填充字段
*/
UPDATE,
/**
* 插入和更新填充字段
*/
INSERT_UPDATE
3.编写MetaObjectHandler的实现类
- 填充原理是直接给
entity
的属性设置值!!! 所以字段要写实体类的字段,不要应该是数据库的字段。
@Component
public class AutoFill implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject,"gmtCreate",Date.class,new Date());
this.strictInsertFill(metaObject,"gmtModified",Date.class,new Date());
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject,"gmtmodified",Date.class,new Date());
}
}