当前使用版本(必填,否则不予处理)

3.4.3.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

文档在自动填充功能的注意事项中明确说明:

字段必须声明TableField注解,属性fill选择对应策略,该声明告知Mybatis-Plus需要预留注入SQL字段

我将 创建时间修改时间 放在基础实体类,要使用该注解,就必须添加相关依赖。但是,在基础项目里,不想添加过多依赖,类也想干净一下,有没有办法实现。

重现步骤(如果有就写完整)

报错信息

Comment From: imtzc

https://gitee.com/tangzc/mybatis-plus-ext 可以参考下这个框架,继承BaseEntity,然后实现一个接口即可

Comment From: VampireAchao

 @Bean
    public MetaObjectHandler metaObjectHandler() {
        return new MetaObjectHandler() {
            /**
             * 插入元对象字段填充(用于插入时对公共字段的填充)
             *
             * @param metaObject 元对象
             */
            @Override
            public void insertFill(MetaObject metaObject) {
                // 不止一种写法
                this.strictInsertFill(findTableInfo(metaObject), metaObject,
                        Arrays.asList(
                                // 从User::getGmtCreate拿到属性gmtCreate,然后调用LocalDateTime.now()填充
                                StrictFill.of(PropertyNamer.methodToProperty(LambdaUtils.resolve(User::getGmtCreate)
                                        .getImplMethodName()), LocalDateTime::now, LocalDateTime.class),
                                // 填充LocalDateTime.now()进gmtModified对应字段
                                StrictFill.of("gmtModified", LocalDateTime.class, LocalDateTime.now())
                        ));
            }

            /**
             * 更新元对象字段填充(用于更新时对公共字段的填充)
             *
             * @param metaObject 元对象
             */
            @Override
            public void updateFill(MetaObject metaObject) {
                // 填充LocalDateTime.now()进gmtModified对应字段,这里是一行写法,中间参数可缩写为LocalDateTime::now
                this.strictUpdateFill(metaObject, "gmtModified", () -> LocalDateTime.now(), LocalDateTime.class);
            }
        };
    }

Comment From: imtzc

您好,邮件已经收到,我会尽快给您回复。