Mybatis 传入List类型参数,报错:There is no getter for property named '__frch_item_0' in
错误如下:
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named '__frch_item_0' in 'class com.asiacloud.core.model.PageModel' at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:75) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:368) at $Proxy6.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:198) at com.asiacloud.core.base.dao.impl.BaseDaoImpl.select(BaseDaoImpl.java:74) at com.asiacloud.syse.unitaccount.dao.impl.TSyseMaintainAccountDaoImpl.queryListByUnitIdPage(TSyseMaintainAccountDaoImpl.java:107)
Mapper
<select id="queryListByUnitIdPage" parameterType="TSyseMaintainAccount" resultMap="TSyseMaintainAccountResultMap"> select a.*,b.UNIT_NAME linkUnitName from T_SYSE_MAINTAIN_ACCOUNT a left JOIN T_SYSE_OPER_UNIT b on a.UNIT_ID=b.ID where a.STATUS_FLAG in ('1','2') AND a.UNIT_ID in <foreach item="item" index="index" collection="params.idList" open="(" separator="," close=")"> #{item} </foreach> AND a.ID != #{params.id} </select>
上面写法错误,注意下面foreach中的值取法,如果取的是List,要用索引来取。
<foreach item="item" index="index" collection="params.idList" open="(" separator="," close=")"> #{params.idList[${index}]} </foreach>