文档章节

mybatis 批量增加 Parameter '__frch_item_0' not found. Available parameters are [list]

RobertZhou
 RobertZhou
发布于 2017/04/07 11:17
字数 346
阅读 162
收藏 0

当在mybatis用到foreach的时候,会报这个错误Parameter '__frch_item_0' not found. Available parameters are [list]会出现的几种解决方案

例子

 

[sql] view plaincopy

  1.   <insert id="insertBatchPicAttachment"  parameterType="java.util.List">  
  2.        insert into pic_attachment   
  3.           (pic_id,pic_udid,relate_id,relate_code,relate_code_dtl,pic_name,pic_url,pic_remote_url)   
  4.        values  
  5.        <foreach collection="list"  item="item" index="index" separator=",">  
  6.           (#{item.picId},#{item.picUdid},#{item.relateId},#{item.relateCode},#{item.relateCodeDtl},#{item.picName},#{item.picUrl},#{item.picRemoteUrl})  
  7.        </foreach>      
  8.        <selectKey resultType="java.lang.Integer" order="AFTER" keyProperty="picId">  
  9.             select LAST_INSERT_ID();  
  10.        </selectKey>   
  11.     </insert>  

 

 

1.查看parameterType的类型是不是Java.util.List类型,如果是的话,看foreach 的collection属性是不是list,

    因为 传递一个 List 实例或者数组作为参数对象传给 MyBatis,MyBatis 会自动将它包装在一个 Map 中,用名称在作为键。List 实例将会以“list” 作为键,而数组实例将会以“array”作为键 

2.看一下foreach里面的值有没有传递进来 

3.看foreach里面的名称字段是否写错 

4.还有就是我用Mybatis的时候,用MySQL的值插入自动增长值,里面的key我在数据库中没有设置自动增长,然后我又用了selectkey,所以也会出现这种情况

--------------------------------------------------------------------

还有一种情况是item的属性不对,我在使用通用Map的时候,发现此问题。

通用Map的好处是减少了对Bean的书写,问题是如果数据库的查询结果为Null,对应属性的key也就不存在

本文转载自:http://blog.csdn.net/zljjava/article/details/47038035

共有 人打赏支持
RobertZhou
粉丝 8
博文 137
码字总数 17031
作品 0
广州
程序员
私信 提问
参数为集合时,mybatis3 分页查询问题及其对应的解决方法

当参数为集合时,使用mybatis3分页查询时抛出的异常: UserMapperTest.java的部分代码(测试用例): UserMapper.java部分代码: UserMapper.xml代码(错误的用法示范): 执行测试用例后,后...

有钱有爱
2016/06/17
77
0
Parameter '__frch_info_0' not found. Available parameters are [list]

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter '__frch_info_0' not found. Available parameters are [list] c......

Solid
2016/06/21
4
0
深入了解MyBatis参数

深入了解MyBatis参数 相信很多人可能都遇到过下面这些异常: "Parameter 'xxx' not found. Available parameters are [...]" "Could not get property 'xxx' from xxxClass. Cause: "The exp......

Liuzh_533
2015/03/02
0
10
MyBatis 是不是不支持 批量插入 id自增长的数据?

MyBatis 是不是不支持 批量插入 id自增长的数据? 就是批量插入的时候,insert 属性useGeneratedKeys="true" keyProperty="id",如果insert into article (param1,param2,param3) values (X,...

Flyer_cao
2014/05/17
2.8K
2
Mybatis3.3.x技术内幕(十五):Mybatis之foreach批量insert,返回主键id列表(修复Mybatis返回null的bug)

Mybatis在执行批量插入时,如果使用的是for循环逐一插入,那么可以正确返回主键id。如果使用动态sql的foreach循环,那么返回的主键id列表,可能为null,这让很多人感到困惑;本文将分析问题产...

祖大俊
2016/05/13
9.6K
17

没有更多内容

加载失败,请刷新页面

加载更多

sed修改行基础使用

修改(change)命令允许修改数据流中整行文本的内容,这个和删除和替换的工作机制差不多吧。 还是使用下面的测试数据: 然后我们就替换掉第三行吧,sed '2c/hello xin ,you are pretty boy' tes...

woshixin
7分钟前
0
0
微信支付申请

确认相关信息后点击确认提交 提交成功后提示相关信息 签署相关协议 其他电话和打款验证成功后,恭喜您成功通过微信支付商户资料审核!(注意查看邮箱文件) 登陆微信公众平台微信支付查看 其...

Code辉
11分钟前
0
0
基于Sentry实现数据访问权限控制

Sentry初识 Sentry是适用于Hadoop生态环境、基于角色的授权管理系统,可以模块化集成到HDFS、Hive、Impala。它是一个策略引擎,运行定义授权规则,以校验用户对数据模型的访问请求。 授权粒度...

hblt-j
22分钟前
1
0
executor 和task 优先于线程(68)

java.util.concurrent 包里有一个Executor 框架 基于接口的任务执行工具 只需要一行代码 提交一个runnable 方法 优雅的终止(必须做到,不然虚拟机可能不会退出) 对于负载不重的服务 Execut...

Java搬砖工程师
54分钟前
1
0
一条SQL查询语句是如何执行的

123

writeademo
56分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部