应业务需求,需要使用到MQ进行数据上传和下发。传递格式为JSON,服务那边下发JSON数组,接收端将JSON数组转换成List集合,调用Mybatis-plus批量添加saveBatch()。提示字段未找到...

org.apache.ibatis.exceptions.PersistenceException:
### Error updating database.  Cause: org.apache.ibatis.binding.BindingException: Parameter '字段' not found. Available parameters are [collection, list]
### The error may exist in com/vinsuan/parking/client/dao/mapper/ParkingLongrentInfoTimeMapper.java (best guess)
### The error may involve com.vinsuan.parking.client.dao.mapper.ParkingLongrentInfoTimeMapper.insert
### The error occurred while executing an update
### Cause: org.apache.ibatis.binding.BindingException: Parameter '字段' not found. Available parameters are [collection, list]at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:200)at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:185)at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.saveBatch(ServiceImpl.java:122)at com.baomidou.mybatisplus.extension.service.IService.saveBatch(IService.java:58)at com.baomidou.mybatisplus.extension.service.IService$$FastClassBySpringCGLIB$$f8525d18.invoke(<generated>)at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:749)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294)at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98)at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:688)at com.vinsuan.parking.client.service.impl.ParkingLongrentInfoTimeServiceImpl$$EnhancerBySpringCGLIB$$f890ae1b.saveBatch(<generated>)at com.vinsuan.parking.client.datahandler.mqtt.MqttHandler.handlerDataToMethod(MqttHandler.java:259)at com.vinsuan.parking.client.datahandler.mqtt.MqttHandler.handlerData(MqttHandler.java:239)at com.vinsuan.parking.client.datahandler.mqtt.MqttHandler.messageArrived(MqttHandler.java:84)at org.eclipse.paho.client.mqttv3.internal.CommsCallback.deliverMessage(CommsCallback.java:499)at org.eclipse.paho.client.mqttv3.internal.CommsCallback.handleMessage(CommsCallback.java:402)at org.eclipse.paho.client.mqttv3.internal.CommsCallback.run(CommsCallback.java:206)at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)at java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:266)at java.util.concurrent.FutureTask.run(FutureTask.java)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.ibatis.binding.BindingException: Parameter '字段' not found. Available parameters are [collection, list]at org.apache.ibatis.session.defaults.DefaultSqlSession$StrictMap.get(DefaultSqlSession.java:343)at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:113)at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:2719)at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:114)at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:493)at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:457)at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:33)at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:41)at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:293)at org.apache.ibatis.executor.statement.BaseStatementHandler.<init>(BaseStatementHandler.java:64)at org.apache.ibatis.executor.statement.PreparedStatementHandler.<init>(PreparedStatementHandler.java:41)at org.apache.ibatis.executor.statement.RoutingStatementHandler.<init>(RoutingStatementHandler.java:46)at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:563)at org.apache.ibatis.executor.BatchExecutor.doUpdate(BatchExecutor.java:57)at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:198)

原因:使用hutool工具类将JSON数组转换成List集合,发现有两层集合。

<!-- hutool 版本:4.5.0 --><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>4.5.0</version></dependency>
/*** 测试 JSON数组转换成List集合* @param args*/public static void main(String[] args) {String data = "[{\"id\":1,\"username\":\"username\",\"password\":\"password\"},{\"id\":2,\"username\":\"username2\"}]";List<Object> list = JSONUtil.toList(JSONUtil.parseArray(data), Object.class);System.out.println(list);}-------------控制台打印-------------[[{"password":"password","id":1,"username":"username"}, {"id":2,"username":"username2"}]]

解决方案:

方案一、 将JSON数组字符串转换为JSON数组,循环遍历存储List集合中。
方案二、 将hutool 版本:4.5.0 改为 4.6.15。

BindingException: Parameter 'XXX' not found. Available parameters are [collection, list]相关推荐

  1. 【问题记录】04 MyBatis报错:Parameter ‘XXX‘ not found. Available parameters are [page, hashMap, param1, param

    1.报错信息如下: nested exception is org.apache.ibatis.binding.BindingException:Parameter 'XXX' not found. ...

  2. Mybatis错误:Parameter 'XXX' not found. Available parameters are [1, 0, param1, param2]

     这个问题我遇到了两次,我也不太清楚到底是什么原因,先贴出解决方案吧 修改前的代码: [java] view plaincopy @Select("select * from fruit ...

  3. 踩坑日记:Parameter ‘XXX‘ not found. Available parameters are [param5, param6]解决一下午。。。。

    service层代码 dao层: xml: 错误信息: 因为三个方法的sql基本一模一样,对照了一下午都没发现,最后最后!!!!!气死我了,找到了!! 原来空格也会有影响,记住了记住了!!!!

  4. 错误:Parameter ‘0‘ not found.Available parameters are [arg1, arg0, param1, param2]的解决方法

    错误:Parameter '0' not found.Available parameters are [arg1, arg0, param1, param2]的解决方法 参考文章: (1)错误:Pa ...

  5. 报错:Parameter ‘XXX‘ implicitly has an ‘any‘ type.解决方法

    报错:Parameter 'XXX' implicitly has an 'any' type.解决方法 tsconfig.json添加"noImplicitAny": false ...

  6. MyBatis批量操作报错:Parameter 'xxxList' not found. Available parameters are [list]

    问题背景: 在Dao中使用MyBatis进行查询操作,参数是传的一个List:studentNameList,但是在执行查询的时候报错,具体日志如下: Shell代码   com.chenzhou.b ...

  7. 批量插入报错:Parameter ‘id‘ not found. Available parameters are [forlonList, param1]

    项目场景: 在开发中,需要通过批量插入,生成主键id,然后进行数据关联操作 问题描述 Caused by: org.apache.ibatis.executor.ExecutorException: ...

  8. mybatis错误:Parameter 'companyName' not found. Available parameters are [arg3, arg2, arg1, arg0,..]

    问题: 解决: 原因是DAO层传入参数mapper无法识别, 只需要在在DAO中的方法中前加入@Param("xxx")即可,在mapper.xml中使用xxx作为传参. int ...

  9. java 传入多个参数时报Parameter 'XXX' not found. Available parameters are [arg1, arg0, param1,... 解决方案...

    @Select("SELECT id FROM ae_post ORDER BY id DESC LIMIT #{page},#{size}")List<Post> g ...

最新文章

  1. EXPLAIN PLAN获取SQL语句执行计划
  2. java扫描指定package注解_java获取包下被指定注解的类
  3. 江苏高中计算机考试成绩查询系统,江苏2018普通高中信息技术学业水平测试成绩查询系统已开通...
  4. webpack4.0各个击破(7)—— plugin篇
  5. stm32 薄膜键盘原理_铅锤哥:市面上的笔记本键盘优缺点解析,看完秒懂
  6. linux下通过伪造udp包来实现指定网卡发送数据
  7. C++数据类型之结构体的练习(用到结构体的赋值,利用结构体元素排序以及查找)
  8. perl-我的第一个程序
  9. PDF Expert 2.5.13 极致的 PDF 阅读标注工作体验
  10. win10 nginx安装和使用
  11. c语言 求单元格中间某段字符串,EXCEL怎么取单元格里面的的值的中间某些字符...
  12. CSS3 转换解析及制作立方体相册
  13. openssl-genras命令简单入门
  14. NBUT1225 NEW RDSP MODE I(快速幂,规律)
  15. VPP创建buffer池
  16. C# 将一种类型的数组转换为另一种类型的数组
  17. NSWOJ-zlh找男朋友(水题)
  18. 发光二极管pcb封装图画法_LM2596电源模块原理图及PCB分享
  19. 帝国cms华北新闻网模板php地方门户新闻网站源码带采集,帝国CMS新闻资讯-地方门户网站模板(带手机版)...
  20. 【源码】让源码告诉你:为什么在子线程无法更新 UI 操作?

热门文章

  1. mysql against包含英文_在MySQL中使用MATCH和AGAINST选择特定列中包含字符串的行
  2. java 分号 转义_java – 正则表达式和转义和未转义的分隔符
  3. 环境变量_配置JAVA环境变量
  4. python统计英文句子每个单词字数_Python小书3-文本英文单词统计
  5. python里pip是什么意思_python使用pip的方法是什么
  6. 嵊州职教中心计算机多少分数,嵊州中考考试分数线
  7. html meta页面自适应,【转载·收藏】 html5手机网站自适应需要加的meta标签
  8. HTML5之webSocket使用
  9. 3D Mapping with an RGB-D Camera(RGBD SLAM V2 )论文笔记
  10. [大数据]-Fscrawler导入文件(txt,html,pdf,worf...)到Elasticsearch5.3.1并配置同义词过滤...