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这篇文章,里面说

发现不能将参数设为bean里的名称,如果传入类型为String类型,则参数需统一修改为[_parameter],修改后的sql语句如下(不管你的参数是什么,都要改成”_parameter”)

其实不然,不是说

<select id="getRiskMember" resultMap="BaseResultMap" parameterType="String">

这样的语句,在xml中参数都必须是“_parameter”。

我来乘凉

来看看我的论证

<select id="getMoneyTransferByAttr1" parameterType="String" resultMap="BaseResultMap">
        <include refid="selectMoneyTransfer" />
        and attr1 = #{attr1}
    </select>

这样的写法,在运行时也完全没有问题,注意parameterType=”String”、and attr1 = #{attr1}。

那么什么情况下会发生“There is no getter for property named in ‘class java.lang.String’”错误呢?

其实是在这种情况下:

    <select id="getRiskMember" resultMap="BaseResultMap" parameterType="String">
        <include refid="selectMember"/>
        and safetylevel > 1
        and stauts = 1

        <if test="username != null">
            and username = #{username}
        </if>
    </select>

注意看,是在if test=验证的时候发生的 “There is no getter for property named in ‘class java.lang.String’”,而并非是and username = #{username} 的时候发生的错误。

当然解决办法还是“noku_ln10”博主说的,改成一下这种情况就OK了

    <select id="getRiskMember" resultMap="BaseResultMap" parameterType="String">
        <include refid="selectMember"/>
        and safetylevel > 1
        and stauts = 1

        <if test="_parameter != null">
            and username = #{username}
        </if>
    </select>

版权声明:本站博客均为qing_gee原创文章,若您需要引用、转载,只需要注明来源及原文链接即可。

There is no getter for property named in 'class java.lang.String'

时间: 2024-10-06 13:22:15

There is no getter for property named in 'class java.lang.String'的相关文章

Mybatis 报错 There is no getter for property named &#39;***&#39; in &#39;class java.lang.String&#39;

在mapper.xml中 , 如果单参数是String类型 , 且在sql语句中对参数进行了判断 , 如下 when 中的判断 , 如果出现 if 判断也是一样的.都需要把判断中的参数用 _parameter 来代替 ,. 另外orcal中判断字段是否为空需要使用 is null , 同理,判断不为空使用 is not null . 错误查询: <select id = "select" resultMap="ResultMap" parameterType=

There is no getter for property named &#39;*&#39; in &#39;class java.lang.String&#39;之源码分析

There is no getter for property named '*' in 'class java.lang.String',此错误之所以出现,是因为mybatis在对parameterType="String"的sql语句做了限制,假如你使用<when test="username != null">这样的条件判断时,就会出现该错误,不过今天我们来刨根问底一下. 一.错误再现 想要追本溯源,就需要错误再现,那么假设我们有这样一个sql查询

spring mvc出现 Failed to convert property value of type &#39;java.lang.String&#39; to required type &#39;java.util.Date&#39; for property &#39;endtime&#39;

在使用spring mvc中,绑定页面传递时间字符串数据给Date类型是出错: Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property 'expert.birthdate'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of typ

message [Failed to convert property value of type [java.lang.String] to required type [java.util.Date] for property

springmvc前台字符串,后台Date类型字段.时间强转失败 数值:18年12月31日 15:43:21 解决方法,给时间字段加注释 @DateTimeFormat(pattern = "yy年MM月dd日 HH:mm:ss") private Date f_createtime; 原文地址:https://www.cnblogs.com/passedbylove/p/10208108.html

Mybatis问题:There is no getter for property named &#39;unitId&#39; in &#39;class java.lang.String&#39;

Mybatis遇到的问题 问题: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named 'unitId' in 'class java.lang.String' at org.mybatis.spring.MyBatisExceptionTransla

There is no getter for property named ‘‘ in ‘class

今天突然遇到这个问题 There is no getter for property named '' in 'class java.lang.String' 通过以下文章解决 There is no getter for property named 'moduleCode' in 'class java.lang.String 错误写法: <select id="queryAllParentModule" resultType="jobModule" pa

There is no getter for property named &#39;NULL&#39; in ……

往往细节上的错误事最要命的事情,当你看着代码,逻辑上没有问题,但是却又曝出一些莫名其妙不知所以的错,你百度了 说出来的原因又是乱七八糟的鸡肋!很无助,纠结了很久,浪费了很多宝贵的时间--看代码! <update id="Updateuser2" parameterType="User"> update ckx_user <set> <if test="userName != NULL"> userName=#{

MyBatis查询传一个参数时报错:There is no getter for property named &#39;sleevetype&#39; in &#39;class java.lang.Integer

用MyBatis进行查询,传入参数只有一个时(非Map)如int,报错 There is no getter for property named 'sleevetype' in 'class java.lang.Integer 原因在于测试条件写法有误, <if test="sleevetype==0"><!-- 专属 --> exclusive=1 </if> <if test="sleevetype!=0">&l

There is no getter for property named &#39;userId&#39; in &#39;class java.lang.String&#39;

[ERROR] 2017-01-18 04:37:06:231 cn.dataenergy.common.CenterHandlerExceptionResolver (CenterHandlerExceptionResolver.java:44) - 统一捕获异常: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Th