采用EasyCodeMybatisCodeHelper生成代码,调用其中的批量插入方法时,报错:
Parameter ‘id’ not found. Available parameters are [entities, param1]

方法平平无奇

//service
List<BoardConfig> entities = new ArrayList<>();
for(Map.Entry<String, Double> entry : params.entrySet()){
    String key = entry.getKey();
    if(isPropertie(key)) {
        BoardConfig config = new BoardConfig();
        config.setId(0);
        config.setBoardId(board.getId());
        config.setCode(key);
        config.setSetValue(Double.parseDouble(String.valueOf(entry.getValue())));
        entities.add(config);
    }
}
this.boardConfigDao.insertBatch(entities);

dao代码

int insertBatch(@Param("entities") List<BoardConfig> entities);

mapper文件代码

<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
     insert into board_config(BOARD_ID, CODE, SET_VALUE, NOTE)
     values
     <foreach collection="list" item="entity" separator=",">
         (#{entity.boardId}, #{entity.code}, #{entity.setValue}, #{entity.note})
     </foreach>
 </insert>

看了以下参考文章,修改后问题解决。但作者没有说明是什么原因。也许是BUG吧。
mybatis批量插入报错Parameter ‘id‘ not found. Available parameters are [entities, param1]

修改方法抄录如下:

将
 int insertBatch(@Param(“entities”) List entities);改为
 int insertBatch(List entities);将

 (#{entity.ruleId}, #{entity.name}, #{entity.code}, #{entity.value}, #{entity.description},
 #{entity.sortKey})

 改为

 (#{entity.ruleId}, #{entity.name}, #{entity.code}, #{entity.value}, #{entity.description},
 #{entity.sortKey})