Mybatis报错There is no getter for property named 'id' in 'class java.lang.String'
昨天运行公司项目的一个模块时,后台报了一个错:
Caused by: org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'id' in 'class java.lang.String'
一看是某个属性没有get方法,可是再一看不对劲啊,java.lang.String,大概意思是String类中属性为id的getter,怎么id属性成String类中的了???
看下查询语句:
<select id="get" resultType="Target" >
SELECT
FROM sp_target a
<where>
<if test="id != null and id !=''">
and a.id = #{id}
</if>
</where>
</select>
SELECT 后面没有字段,我删除了,不影响我们讨论的问题。这个查询只传入了一个参数,是String类型的,并且where标签中增加了一个if test的判空,其实问题就是在这里,当我们传入一个String对象参数,Mybatis会把id当做String对象的一个属性,这很显然是有问题的,String不是我们定义的类。说白了,Mybatis认为id是String类的一个属性,但String中并没有id这个属性。
两种解决方法:
一、if test中的id用_parameter替换,而实际的语句不需要修改and a.id = #{id},因为Mybatis当只传入一个参数时#{ } 中的内容没有要求。
二、在Mapper中给出入参设置名称,例:public ... getById(@Param("id") String id);这样修改后我们前面的写法就不会报错了。
额外一种解决方法:
如果该字段必定不为空的话,可以不使用if标签,这样and a.id = #{id} 这样的写法也不会报错。
希望能帮助到大家,如有问题,请指出,不胜荣幸...
Mybatis报错There is no getter for property named 'id' in 'class java.lang.String'相关推荐
- Mybatis问题:There is no getter for property named 'unitId' in 'class java.lang.String'
Mybatis遇到的问题 问题: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.re ...
- mybaits错误解决:There is no getter for property named 'parentId ' in class 'java.lang.String'
在使用mybaitis传参数的时候,如果仅传入一个类型为String的参数,那么在 xml文件中应该使用_parameter来代替参数名. 比如mapper中如下方法,只有一个String值 publ ...
- mybatis报错There is no getter for property named '***' in 'class ***'
mybatis报错There is no getter for property named '***' in 'class ***', 检查一看是xml中映射字段拼写错误,大小写. 有的时候用插件生 ...
- mybatis传单个参数报错:There is no getter for property named 'user_id' in 'class java.lang.String
org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'user_id' in ...
- SSM框架报错分析(一)——There is no getter for property named 'XXX' in 'class java.lang.String'...
一.发现问题<select id="queryStudentByNum" resultType="student" parameterType=" ...
- Mybatis中传参包There is no getter for property named XXX in class java.lang.String
一.发现问题 <select id="queryStudentByNum" resultType="student" parameterType=&quo ...
- mybatis There is no getter for property named 'xx' in 'class java.lang.String
用mybatis查询时,传入一个字符串传参数,且进行判断时,会报 Java代码 There is no getter for property named 'moduleCode' in 'cla ...
- Mybatis异常There is no getter for property named ‘XXX‘ in ‘class java.lang.String‘
Mybatis异常There is no getter for property named 'XXX' in 'class java.lang.String' 参考文章: (1)Mybatis异常T ...
- MyBatis3: There is no getter for property named 'code' in 'class java.lang.String'
mybatis3 : mysql文如下,传入参数为string类型时'preCode',运行报错为:There is no getter for property named 'preCode' i ...
最新文章
- Java解决百马百担问题
- 分享:Orthanc 0.4.0 发布,DICOM 服务器
- java 基础(匿名内部类)
- webpack项目代理异常解决
- 只需 5 分钟看完这篇 HTTPS,去阿里面试和面试官扯皮就没问题了!
- video.js android,VideoJS + HTML5自动播放失败,适用于Android 2.3+和IOS 4+
- java sdk下载_Java Sdk下载 | 保利威帮助中心
- 集合框架(九)----Map
- Spring4.x(7)---对象的生命周期方法
- 荣耀9X/9X Pro外观谍照曝光:屏幕设计竟大不相同
- 液态渐变背景纹理,选择一个新潮的背景,为你的设计加分!
- 计算机常用维护知识,电脑怎么维护?电脑日常维护小常识
- python 读取鼠标选中文本_python怎么读取文本文件
- Spring-扫描/jar/读取Classpath下的文件资源
- 评分卡模型开发(八)--主标尺设计及模型验证
- 物联网技术对于智慧生活24小时改变
- 【CF1312D】Count the Arrays(计数)
- TeamTalk服务器编译与部署
- 查看Win7电脑密钥期限
- Python机器学习应用之监督学习-上证指数涨跌预测实例