Mybatis中传参包There is no getter for property named 'XXX' in 'class java.lang.String'

来源:互联网 发布:51网络技术论坛 编辑:程序博客网 时间:2024/05/20 01:10

1、mybaits的配置文件如下:

<select id="selectCentosOrSuse" resultMap="devicemap" parameterType="java.lang.String"> SELECT deviceID,manageIP,deviceType,isdmz from tbl_copdb_device where deviceID in (SELECT deviceID FROM tbl_copdb_devicepropertyvalue where <if test="attributevalue!=null and attributevalue!='' ">attributevalue=#{attributevalue}</if>) and deviceType in (1,2) and ifsystem =1;</select>

2、执行后报错:

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

3、网上查改成如下形式即可:

<select id="selectCentosOrSuse" resultMap="devicemap" parameterType="java.lang.String"> SELECT deviceID,manageIP,deviceType,isdmz from tbl_copdb_device where deviceID in (SELECT deviceID FROM tbl_copdb_devicepropertyvalue where <if test="_parameter!=null and _parameter!='' ">attributevalue=#{_parameter}</if>) and deviceType in (1,2) and ifsystem =1;</select>

4、另外还有种方法也可以解决,删掉if判断即可

<select id="selectCentosOrSuse" resultMap="devicemap" parameterType="java.lang.String"> SELECT deviceID,manageIP,deviceType,isdmz from tbl_copdb_device w<if test="_parameter!=null and _parameter!='' ">attributevalue=#{attributevalue}) and deviceType in (1,2) and ifsystem =1;</select>

5、最后一种方法是加形参,设置参数类型

public List<Device>  selectCentosOrSuse(@Param("attributevalue") String attributevalue) throws Exception;




阅读全文
1 0
原创粉丝点击