实体类
public class User {
......
@TableField(fill = FieldFill.INSERT)
private Date createTime;
//@TableField(fill = FieldFill.UPDATE)
@TableField(fill = FieldFill.INSERT_UPDATE) //添加和修改的时候也执行
private Date updateTime;
}
拦截器使用spring AOP
创建继承MetaObjectHandler的语句拦截器,在操作数据库的时候根据语句拦截,帮我们自动补充被拦截的语句的属性
/**
* 在操作数据库的时候根据语句拦截,帮我们自动补充被拦截的语句的属性
*/
@Component
public class DataMetaObjectHandler implements MetaObjectHandler {
//在执行insert语句的时候被拦截操作的
@Override
public void insertFill(MetaObject metaObject) {
this.setFieldValByName("deleted",0,metaObject);
this.setFieldValByName("version",1,metaObject);
this.setFieldValByName("createTime",new Date(),metaObject);
this.setFieldValByName("updateTime",new Date(),metaObject);
}
//修改语句
@Override
public void updateFill(MetaObject metaObject) {
this.setFieldValByName("updateTime",new Date(),metaObject);
}
}