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

优先级:
如果被标注的属性在入库的时候,被你赋值了,那么拦截器就不会给它赋值了。



简单总结记录,如有不足,欢迎指出交流!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐