同事碰到一个问题,Mybatis批量保存数据,parameterType为Stirng.util.List类型,报
Parameter '__frch_item_0' not found. Available parameters are [list] 错误
同样的插入语法,一边可以实现,一边就不行。
盯着代码看了好久,也查了许多资料,最后才发现,是foreach中取的item的属性在List实体对象中并不存在。
真是哭笑不得。
<insert id="insertAll" parameterType="java.util.List">
insert into TDATACURR (c_name)
<foreach collection="list" item="item" index="index" separator="union">
select #{item.name,jdbcType=VARCHAR} from dual
</foreach>
</insert>
public class Data {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
附上查找到的其他可能情况:
1.查看parameterType的类型是不是Java.util.List类型
2.看foreach的collection属性是不是list
3.看foreach里取的属性值是否写错,大小写是否相同
4.查看foreach里取的属性值实体对象中是否存在