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

时间:2022-09-17 17:04:47

Dao方法及-mapper.xml文件如下所示:

public int updateTaskAfterQuery(String taskId);

 

<update id="updateTaskAfterQuery" parameterType="String">
update wechat_account_task
set status=1,updateTime=now() where status = 0 and taskId in(${taskId})
</update>

执行时发现报错There is no getter for property named 'num' in 'class java.lang.String'。

 

解决方法:

1.修改mapper.xml的传参

<update id="updateTaskAfterQuery" parameterType="String">
update wechat_account_task 
set status=1,updateTime=now() where status = 0 and taskId in(${ _parameter})

</update>

2.修改Dao方法

public int updateTaskAfterQuery(@Param("taskId")String taskId);

原因分析:

Mybatis默认采用ONGL解析参数,所以会自动采用对象树的形式取string.num值,引起报错