您的位置:首页 > 编程语言 > Java开发

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

2017-09-15 17:32 531 查看
今天再做mybatis项目的时候突然爆出了这个错误,在网络上查来查去大多说的都不是很正确,特此对此问题做个批注

关门放代码

<select id="findAllDept" parameterType="Long" resultMap="deptResultMap">
SELECT
DEP_ID,
DEP_NAME,
PARENT_ID,
DEP_DESP,
FROM NULLID.DEPARTMENT_B
<where>
<if test="pid != null">
DEP_ID=#{pid}
</if>
</where>
</select>
就是这样一段简单的代码报了上述的错误,网络上说的原因大多是因为传进来的参数是Long,所以在#{pid}中应将pid改为_parameter,即应该为#{_parameter},但是我在更改过后问题依然没有解决,后来我发现了<if test="pid !=null">这里的这个pid,按照常理来说  这个pid很可能被解析为对象的属性值,因为对字符串的解析更容易出错嘛,将其改为<if test="_parameter !=null">后问题果然迎刃而解,并且及时#{}中的值依然为pid,也没有再报错。
正确的方式为:

<select id="findAllDept" parameterType="Long" resultMap="deptResultMap">
SELECT
DEP_ID,
DEP_NAME,
PARENT_ID,
DEP_DESP,
FROM NULLID.DEPARTMENT_B
<where>
<if test="_parameter != null">
DEP_ID=#{pid}
</if>
</where>
</select>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐