前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解决MyBatis的报错 There is no getter for property named ‘*‘ in ‘class java.lang.String‘

解决MyBatis的报错 There is no getter for property named ‘*‘ in ‘class java.lang.String‘

作者头像
acoolgiser
发布2022-09-02 16:28:17
2.6K0
发布2022-09-02 16:28:17
举报
文章被收录于专栏:acoolgiser_zhuanlanacoolgiser_zhuanlan

ERROR信息:

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

遇到此问题时,首先网上查询得到以下两篇文章,找到了解决办法:

解决MyBatis的报错 There is no getter for property named ‘*‘ in ‘class java.lang.String‘_吾欲乘风归去,又恐琼楼玉宇的博客-CSDN博客报错样式:核心问题就是这一句:

https://blog.csdn.net/NeiHan2020/article/details/117556666源码分析 There is no getter for property named '*' in 'class java.lang.String_沉默王二的博客-CSDN博客There is no getter for property named '*' in 'class java.lang.String',此错误之所以出现,是因为mybatis在对parameterType="String"的sql语句做了限制,假如你使用这样的条件判断时,就会出现该错误,不过今天我们来刨根问底一下。

https://blog.csdn.net/qing_gee/article/details/47122227

经过自己动手尝试,下面两种写法不会出错:

1.没有判断是否为空的语句:

代码语言:javascript
复制
<select id="getListByName" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" />
        FROM myTable
        WHERE name= #{name}
</select>


<select id="getListByName" resultMap="BaseResultMap" parameterType="String">
        SELECT <include refid="Base_Column_List" />
        FROM myTable
        WHERE name= #{name}
</select>

2.有判断是否为空的语句:

代码语言:javascript
复制
<select id="getListByName" resultMap="BaseResultMap">
        SELECT <include refid="Base_Column_List" />
        FROM myTable
        <where>
            <if test="null != _parameter and '' != _parameter">
                name= #{name}
            </if>
        </where>
</select>



<select id="getListByName" resultMap="BaseResultMap" parameterType="String">
        SELECT <include refid="Base_Column_List" />
        FROM myTable
        <where>
            <if test="null != _parameter and '' != _parameter">
                name= #{name}
            </if>
        </where>
</select>

得出结论:

当查询SQL的传入参数为字符串String类型时,如果写了空值判断条件,需要在if判断条件里用_parameter替换参数名。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ERROR信息:
  • 1.没有判断是否为空的语句:
  • 2.有判断是否为空的语句:
  • 得出结论:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档