1、涉及的注解:@TableField
2、注解的属性:FieldFill
// 属性值
public enum FieldFill {
DEFAULT, //默认值
INSERT, // 添加自动注入
UPDATE, // 更新自动注入
INSERT_UPDATE; // 更细、添加自动注入
private FieldFill() {
}
}
实际使用:
// 实体类
public class log{
@TableField(fill = FieldFill.INSERT)
private Long createTime;
@TableField(fill = FieldFill.INSERT_UPDATE)
private Long updateTime;
}
// 拦截类
@Component
public class AutoFillMetaHandle implements MetaObjectHandler {
// 添加拦截
@Override
public void insertFill(MetaObject metaObject) {
String createTimeField = "createTime";
if (metaObject.hasSetter(createTimeField)) {
this.strictInsertFill(metaObject, createTimeField,
Long.class, System.currentTimeMillis());
}
}
// 更新拦截
@Override
public void updateFill(MetaObject metaObject) {
String updateTimeField = "updateTime";
if (metaObject.hasSetter(updateTimeField)) {
this.strictUpdateFill(metaObject, updateTimeField,
Long.class,System.currentTimeMillis());
}
}
}
优先级:
如果被标注的属性在入库的时候,被你赋值了,那么拦截器就不会给它赋值了。
简单总结记录,如有不足,欢迎指出交流!