danshangu
danshangu
采纳率66.7%
2018-09-06 10:10 阅读 2.6k

Mybatis报错IllegalArgumentException

20

报错信息如下:
org.apache.ibatis.exceptions.PersistenceException:

Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.sunyard.insurance.dao.SyssequencesDao.getExtendId

Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.sunyard.insurance.dao.SyssequencesDao.getExtendId

java.lang.Exception: [新单]|create imageExtend|投保书|任务已完结或者任务不存在|创建ImageExtend表记录时,异常.error:操作Extend表异常;sql= error message:nested exception is org.apache.ibatis.exceptions.PersistenceException:

Error querying database. Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.sunyard.insurance.dao.SyssequencesDao.getExtendId

Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.sunyard.insurance.dao.SyssequencesDao.getExtendId

at com.sunyard.insurance.acsynchronized.TaskCreator.doNewCase(TaskCreator.java:216)
at com.sunyard.insurance.acsynchronized.TaskCreator.create(TaskCreator.java:104)
at com.sunyard.insurance.task.AcRe.dealBPOBatch(AcRe.java:403)
at com.sunyard.insurance.task.AcRe.deal(AcRe.java:189)
at com.sunyard.insurance.task.AcCall.call(AcCall.java:34)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:662)

我查找网上资料,很多都说是命名错误,但是我这边命名没有错,而且他也正常跑错,就是这个错误会在程序正常运行一段时间之后突然出现。
我现在怀疑这个和多线程有关系
我这边这个方法是定时任务,2分钟执行一次。
第一次没处理完,第二次再启动的时候好像就报错。
比如说第一次处理,发现有1000条数据要处理,但是2分钟过去只处理了500条,接着定时任务又开始启动这个方法 然后又开始接着就好像报错了。
上面只是我的猜测。
这个BUG已经困扰很久了,求大神帮忙

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • caozhy 从今以后生命中的每一秒都属于我爱的人 2018-09-06 10:38

    configuration.xml里的mapper有错误。你说随机发生这个错误,应该是你只有在特定的情况下才调用getExtendId

    点赞 评论 复制链接分享
  • qq_36565494 大写的牛 2018-09-07 07:00

    按你说的第一次执行发现1000条数据,但是在你第二次调用的时候执行了500条数据,那么还剩1500条数据没有执行,加入你第二次执行有新的1000条消息加入,那么现在是不是有2500条数据去执行,这个和你查询方法貌似没有冲突吧,除非你第一次执行的500条数据还没有提交事务,那样会出现脏数据,也有可能导致你的问题,但是最终什么原因导致你的查询方法出线异常还需要你一步步排查,我的只是建议。

    点赞 评论 复制链接分享

相关推荐