码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2015-07-29 10:16:58      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:no-getter   for-proper   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'

标签:no-getter   for-proper   string   

原文地址:http://blog.csdn.net/qing_gee/article/details/47122227

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!