实力踩坑:There is no getter for property named ‘XXX‘ ‘class XXX‘
Posted 一宿君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实力踩坑:There is no getter for property named ‘XXX‘ ‘class XXX‘相关的知识,希望对你有一定的参考价值。
1、异常错误日志
org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'avgConfGroupQueryRequest' in 'class cn.wbs.pojo.AvgConfGroupQueryRequest'
at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:421) ~[mybatis-3.4.4.jar:3.4.4]
at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:164) ~[mybatis-3.4.4.jar:3.4.4]
at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:162) ~[mybatis-3.4.4.jar:3.4.4]
at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:49) ~[mybatis-3.4.4.jar:3.4.4]
at org.apache.ibatis.reflection.MetaObject.getValue(MetaObject.java:122) ~[mybatis-3.4.4.jar:3.4.4]
at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextMap.get(DynamicContext.java:94) ~[mybatis-3.4.4.jar:
2、分析原因解决
关于mybatis中的xml文件配置我们在实际操作中往往会有一些细节上的错误,这些错误百度比较零碎,大多都不能解决,还是自己小小总结一下比较妥!
上述错误常见场景如下:
-
实体类中没得get/set方法
-
实体类名与数据库类名不符
-
实体类名与xml中的property字段名不符或者与parameterType字段名不符
-
xml中column名与property名不符
-
还有一步比较关键,也是最容易被忽略的,那就是你的xml中的字段前后是不是有空格?有时候一不留神就手抖多敲了一个,找死你都找不出来!!!
另外一个场景:
xml文件中
mapper接口中
一般情况下,用到@Param(“XXX”)是在xml文件的sql语句where条件中有多个参数时,需要由@Param来指定参数命名,但是还要一种情况就是上述的场景,在sql的where条件中,使用到了实体类对象的引用,就必须使用@Param来指定命名。
并不是所有的参数为实体类的都要@Param来指定,如果在sql语句中没有参数冲突,就可以不指定,可以直接使用实体类中的参数,场景如下:
xml文件中
mapper接口中
以上是关于实力踩坑:There is no getter for property named ‘XXX‘ ‘class XXX‘的主要内容,如果未能解决你的问题,请参考以下文章
mybatis出现There is no getter for property named ...的原因及解决办法
There is no getter for property named 'NULL' in ……
Mybatis单个参数报错: There is no getter for property named
Mybatis单个参数报错: There is no getter for property named
Error querying database. Cause: org.apache.ibatis.reflection.ReflectionException: There is no getter
Mybatismybatis查询报错org.apache.ibatis.reflection.ReflectionException: There is no getter for propert(代