公共实体类:
创建一个BasePojo类,存放各个实体类的公共字段。添加注解@TableFiled
@Data
public abstract class BasePojo implements Serializable{
@TableFiled(fill=FiledFill.INSERT)
private Date created; //数据库执行INSERT操作时为该字段赋值
@TableFiled(fill=FieldFill.INSERT_UPDATED)
private Date update; //数据库执行INSERT或UPDATE操作时为该字段赋值
}
自动填充功能实现类:
创建MyMetaObjectHandler类,实现MetaObjectHandler接口中的insertFill(插入操作)和updateFill(修改操作)方法
public class MyMetaObjectHandler implements MetaObjectHandler {
/**
* 插入操作,自动填充
*
* @param metaObject
*/
@Override
public void insertFill(MetaObject metaObject) {
Object created = getFileByName("created", metaObject);
if(Objects.isNull(created)){
setFiledValByName("created", new Date(), metaObject);
}
Object updated = getFiledByName("updated",metaObject);
if(Objects.isNull(updated)){
setFiledValByName("updated", new Date(), metaObject);
}
}
/**
* 修改操作,自动填充
*
* @param metaObject
*/
@Override
public void updateFill(MetaObject metaObject) {
setFiledValByName("updated", new Date(), metaObject);
}
}