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>


目录
相关文章
|
Java 数据库连接 mybatis
mybatis返回map类型数据空值字段不显示(三种解决方法)
mybatis返回map类型数据空值字段不显示(三种解决方法)
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
解决Mybatis-Plus更新对象时为法将某字段更新为空值的问题
|
9月前
|
前端开发 数据库
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
返回参数不用实体类,用map返。resultType=“Map“,以及使用map不返回空的值解决办法,
290 1
|
前端开发 Java 数据库连接
MyBatis在字段返回为null不返回字段
MyBatis在字段返回为null不返回字段
1290 0
声明了Integer类型的两个数值并且值相等,但为什么返回了false?
声明了Integer类型的两个数值并且值相等,但为什么返回了false?
223 0
把两个object对象合并成一个对象 属性名称相同的变为后面对象的值
把两个object对象合并成一个对象 属性名称相同的变为后面对象的值
1422 0
|
API
@JsonView 处理返回值,实现接口返回想要的字段
@JsonView 处理返回的json ,实现返回需要的字段
1680 0
@JsonView的使用,entity中指定向前台返回哪些字段
使用步骤: 1.使用接口来声明多个视图      2.在值对象的get方法上指定视图   3.在Controller方法上指定视图
989 0