源码分析 There is no getter for property named '*' in 'class java.lang.String
来源:互联网 发布:可口可乐的销售数据 编辑:程序博客网 时间:2024/06/08 01:38
There is no getter for property named '*' in 'class java.lang.String'
,此错误之所以出现,是因为mybatis在对parameterType="String"
的sql语句做了限制,假如你使用<when test="username != null">
这样的条件判断时,就会出现该错误,不过今天我们来刨根问底一下。
一、错误再现
想要追本溯源,就需要错误再现,那么假设我们有这样一个sql查询:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
parameterType="String"
,这一点是必须得,参数类型必须是string。- 该sql对应的mapper class中对应的方法为
List<Member> getRiskMember(String username);
,也就是说,传递的参数名为username,正常情况下,这样的配置合情合理。 <when test="username != null">
,你有一个对应的test判断语句,也可能是if。- 那么这个时候,项目运行该查询语句时,就会抛出
There is no getter for property named 'username' in 'class java.lang.String'
错误!
二、解决办法
当然了,如果你没有时间来看源码分析实例的话,我想先告诉你解决办法,免得你被问题困扰。解决办法很简单,你只需要把 <when test="username != null">
修改为 <when test="_parameter!= null">
就好了,其他地方不需要改动(也就是说and username = #{username}
不需要改动为and username = #{_parameter}
),修改后的sql语句如下:
需要源码分析的可以看这个博客http://blog.csdn.net/qing_gee/article/details/47122227
阅读全文
1 0
- 源码分析 There is no getter for property named '*' in 'class java.lang.String
- 源码分析 There is no getter for property named '*' in 'class java.lang.String
- 源码分析 There is no getter for property named '*' in 'class java.lang.String
- 源码分析 There is no getter for property named '*' in 'class java.lang.String
- 源码分析 There is no getter for property named '*' in 'class java.lang.String
- There is no getter for property named '**' in 'class java.lang.String
- mybatis There is no getter for property named 'xx' in 'class java.lang.String
- 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'解决办法
- 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'
- There is no getter for property named '**' in 'class java.lang.String'
- Mybatis-There is no getter for property named 'id' in 'class java.lang.String'
- mybatis There is no getter for property named 'xx' in 'class java.lang.String
- Mybatis中传参包There is no getter for property named 'XXX' in 'class java.lang.String'
- There is no getter for property named 'num' in 'class java.lang.String'。
- There is no getter for property named 'XXX' in 'class java.lang.String'
- There is no getter for property named 'itemId' in 'class java.lang.String 异常处理
- echarts x轴显示格式blog
- 获取Builder C++或Dephi的消息框TMessageForm内
- java面试题总结:java的接口类和抽象类的特点
- 编程语言——C++的对象模型
- EasyUI DataGrid 单元格合并(或者说一条数据拆分成多条)
- 源码分析 There is no getter for property named '*' in 'class java.lang.String
- 常见HTTP/FTP/WebSocket错误代码大全
- Ubuntu16.04LTS傻瓜式安装Eclipse图文详情加注释
- tomcat使用技巧
- Linux 常用命令——ln
- ios UDP sendto方法返回值一直是-1
- 2017.11.15 注册表开启显示隐藏文件及文件夹
- 读取文件中的换行符不等于空
- onNewIntent在Activity设置为singleTask时候的使用