zoukankan      html  css  js  c++  java
  • org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'userId' in 'class java.lang.Integer'

    最近在使用mybaties查询的时候报了一个错:

    org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'userId' in 'class java.lang.Integer'

    后来一顿度娘,找到一篇文章:

    在使用mybatis时经常碰到这些错误:

    org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'code' in 'class java.lang.String'; (应该是多个参数的情况下会出现)
    nested exception is org.apache.ibatis.binding.BindingException: Parameter 'code' not found. Available parameters are [0, 1, param1, param2];
    其实都是接口的参数命名导致mybatis参数绑定出错引起的。默认情况下mybatis把参数按顺序转化为[0, 1, param1, param2],也就是说#{0} 和 #{param1} 是一样的,都是取第一个参数,以此类推。

    下面经过实验验证,首先分两种情况:

    使用if判断
    如果使用了< if test="codee != null and codee !=''"> if判断,那么接口参数就需要加@Param注解。使用了if判断,mybatis取值的时候参数就成了[param1, codee],所以你不得不加注解@Param("codee"),这个时候不再有0或1了(Available parameters are [param1, codee]),或者param1… 也可用,比如:

    < if test="param1 != null and param1 !=''">
    and FAULTPOSITION_CODE like CONCAT('%',CONCAT(#{param1,jdbcType=VARCHAR},'%')) ESCAPE '*'
    < /if>

    没有使用if判断
    这个时候也分两种情况:
    (1)接口参数只有一个,不管接口参数名是什么,这个时候#{xxx}没有限制,可以是0,param1,也可以是aaa,bbb。可以不加注解。
    (2)当接口参数大于一个的时候,mybatis的参数集就是上边说的默认值[0, 1, param1, param2],如果你不用默认值,就需要加上@Param注解起别名。一旦加了注解,mybatis的参数集就和第一种情况一样了,这个时候也就不再区分是否使用if判断。

    ————————————————
    版权声明:本文为CSDN博主「一杯星空一个世界」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/liyaowen505/article/details/84621722

  • 相关阅读:
    选择最佳服务台方案的7个考量
    使用OpManager轻松进行Windows网络监控
    统一终端管理(UEM)有哪些关键的安全功能
    javascript的声明变量var,let,const的区别
    Vue 在过滤器filter中调用methods中的方法
    第十六章:过滤器的奥秘
    1970年1月1日(00:00:00 GMT)Unix 时间戳(Unix Timestamp)
    让网页中的JavaScript代码自动执行的三种方法
    限制input type=“file“ 文件上传类型
    对v-html的文字做超出显示省略号
  • 原文地址:https://www.cnblogs.com/wlv1314/p/13072251.html
Copyright © 2011-2022 走看看