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