metaObject.hasSetter在updayeFill的时候把实体类中没有这个字段的值也返回了true

简介: metaObject.hasSetter在updayeFill的时候把实体类中没有这个字段的值也返回了true

今早正在开心撸代码的时候,报了一个错。

metaObject.hasSetter 在updateFill 方法中

将我原本实体类上没有的字段 在hasSetter 中也判断成了true???

什么问题,难道底层出错了。

 @Override
    public void updateFill(MetaObject metaObject) {
        //是否存在set方法
        boolean hasModifyTime =   metaObject.hasSetter("ModifyTime");
        //拿到updateTime的值
        Object modifyTime = getFieldValByName("ModifyTime", metaObject);
        if (hasModifyTime){
            //有set方法
            if (modifyTime == null) {
                //值为null填充
                setFieldValByName("ModifyTime", new Date(), metaObject);
            }
        }
        boolean hasModifierId = metaObject.hasSetter("ModifierId");
        if(hasModifierId){
           this.setFieldValByName("ModifierId", UserContext.getCurrentUser().getUserId(), metaObject);
        }
    }

当我查看了源码的时候我发现,它是在修改时候只调用了MapWrapper这个方法。却没有调用BeanWrapper。


其实尝试了两边后发现,hasGetTer 的方法也是这样的问题。


于是我开始从尝试是不是因为mybatis plus 版本太低的原因?


换了版本到 3.3.1.tmp 版本后。一切正常。


 <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.3.1.tmp</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-generator</artifactId>
            <version>3.3.1.tmp</version>
        </dependency>


目录
相关文章
通过Function获取属性对应字段
通过Function获取属性对应字段
75 0
|
Java 数据库连接 mybatis
mybatis返回map类型数据空值字段不显示(三种解决方法)
mybatis返回map类型数据空值字段不显示(三种解决方法)
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
|
3月前
|
C#
这个字段,我想看看报错吗
这个字段,我想看看报错吗
|
JavaScript
🎖️typeScrpt中如何返回正确的类型?
条件返回类型确实是 TypeScript 中非常有用的强大功能,它允许您根据参数的类型为函数指定不同的返回类型,从而实现更强的类型安全性。
88 0
|
7月前
|
前端开发 数据库
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
238 1
|
前端开发
根据数组code值返回value值
根据数组code值返回value值
83 0
|
前端开发 Java 数据库连接
MyBatis在字段返回为null不返回字段
MyBatis在字段返回为null不返回字段
1256 0
声明了Integer类型的两个数值并且值相等,但为什么返回了false?
声明了Integer类型的两个数值并且值相等,但为什么返回了false?
211 0
for...of 返回索引和值
for...of 返回索引和值