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


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也是不會有問題的.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM