1. 程式人生 > >Mybatis報錯:Parameter 'list' not found. Available parameters are [groupList, param1]

Mybatis報錯:Parameter 'list' not found. Available parameters are [groupList, param1]

ber goods values tor 我們 問題 util 沒有 nbsp

GroupDao.java 裏面定義的方法:

void batchInsertLog(@Param("groupList") List<MktPromotionIntegralLog> groupList);

修改前的GroupMapper.xml

<insert id="batchInsertLog" parameterType="java.util.List">
  INSERT INTO table
  (ps_id,goods_id,item_number,goods_name)
  values
  <foreach collection="list" item="log" index="groupList" separator=",">
    (#{log.ps_id},#{log.goods_id},#{log.item_number},#{log.goods_name})
  </foreach>
</insert>

執行batchInsertLog方法會報錯:

Parameter ‘list‘ not found. Available parameters are [groupList, param1]

修改後的GroupMapper.xml

<insert id="batchInsertLog" parameterType="java.util.List">
  INSERT INTO table
  (ps_id,goods_id,item_number,goods_name)
  values
  <foreach collection="groupList" item="log" index="groupList" separator=",">
    (#{log.ps_id},#{log.goods_id},#{log.item_number},#{log.goods_name})
  </foreach>
</insert>

修改後報錯問題得以解決.

產生這個問題的原因是由於一直認為 foreach 裏面的 collection 應該放的是 java.util.List 之類的,但其實應該是我們與Dao裏面 @Param("groupList") 綁定的參數名一致,如果沒有使用 @Param ,修改前的修改前的GroupMapper.xml也是不會有問題的.

Mybatis報錯:Parameter 'list' not found. Available parameters are [groupList, param1]