Parameter '__frch_item_0' not found. Available parameters are [list]问题

鄙人才疏学浅,但是还是想吐槽下,mybatis这异常说明确实让人费解。

网上关于这个问题说明不少,基本是关于collection属性值有误,或是在使用list的元素对象中的成员变量时 搞错了名字之类的。

我是盯着看了好一会儿 也没发现我的代码里出现了上述错误,还以为mybatis的当前版本无法正常遍历list。[汗]

但是查bug贵在坚持,最后还是找出了问题:


我其实就是搞错了元素对象中的成员变量名,因为这里的名字
大小写敏感!


仔细想想,这里是必须敏感的,如果java对象中,两个成员变量的名字只有大小写的区别,但在mybatis中不区分大小写的话,那这里岂不是处理不了了。


这里还是放上代码吧

<insert id="insertBatch" parameterType="java.util.List">
    insert into BIGTABLE (PID)
    <foreach collection="list" item="item" open="(" separator="union" close=")">
	   select #{item.pid,jdbcType=DECIMAL} from dual
           <!-- 上面的pid在修改之前是PID,导致了标题所述异常 -->
    </foreach >
</insert>

public class BigTable {
  private Long pid;

  public Long getPid() {
    return pid;
  }

  public void setPid(Long pid) {
    this.pid = pid;
  }
}

工作中,像这样让人哭笑不得的问题多得是,还是得有个好心态啊。。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值