mybatisplus处理公共字段
前提:引入mybatisplus的开发jar,项目已经集成了mybatisplus
1.定义公共字段
@Data
public abstract class BaseTableField implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 创建时间
*/
@TableField(fill = FieldFill.INSERT)
private Date createTime;
/**
* 修改时间
*/
@TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime;
}
2.定义配置类
@Configuration
public class MybatisPlusConfig {
@Bean
public MetaObjectHandler metaObjectHandler(){
return new MetaObjectHandler() {
@Override
public void insertFill(MetaObject metaObject) {
Object originalObject = metaObject.getOriginalObject();
if (originalObject instanceof BaseTableField) {
this.strictInsertFill(metaObject, "createTime", Date.class, new Date());
this.strictInsertFill(metaObject, "updateTime", Date.class, new Date());
}
}
@Override
public void updateFill(MetaObject metaObject) {
Object originalObject = metaObject.getOriginalObject();
if (originalObject instanceof BaseTableField) {
((BaseTableField) originalObject).setUpdateTime(null);
this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());
}
}
};
}
}
3.使用操作
构建实体类需要extends BaseTableField
,然后在进行数据库操作insert
和update
时都会自动对createTime
和updateTime
字段进行赋值。