Mybatis 报错: There is no getter for property named '__frch_productId_0' 的原因主要是Mapper接收的查询参数为一个非List的对象,而在sql语句中遍历对象中的List直接取值导致的。
Mapper: 其中 parameterType类型并不是一个List
<select id="getProductAuthorizeBookListPage" parameterType="page" resultType="xxx"> SELECT u.user_id FROM user u WHERE u.address IN <foreach collection="pd.userIds" item="userId" open="(" separator="," close=")"> #{userId} </foreach> </select>
这种写法就会出现上面的错误,而 parameterType = “list” 可以直接用上面的写法
解决方法:
<select id="getProductAuthorizeBookListPage" parameterType="page" resultType="xxx"> SELECT u.user_id FROM user u WHERE u.address IN <foreach collection="pd.userIds" index="index" open="(" separator="," close=")"> #{pd.userIds[${index}]} </foreach> </select>