mybatis查询异常

问题描述

今天在开发的时候,在数据量小的情况查询时正常,但是上到生产环境,查询量大的时候,时不时的就会抛出下面的异常。有没有大神帮忙解答一下~~mybatis的版本是3.1.1,用spring整合的。org.apache.ibatis.exceptions.PersistenceException:
解决方案二:
Errorqueryingdatabase.Cause:java.lang.ClassCastException:org.apache.ibatis.executor.ExecutionPlaceholdercannotbecasttojava.util.List
解决方案三:
Theerrormayexistinclasspathresource[mybatis/ConVideoInfoMapper.xml]
解决方案四:
Theerrormayinvolvecom.letv.mms.core.dao.IConVideoInfoDao.selectById
解决方案五:
Theerroroccurredwhileexecutingaquery
解决方案六:
Cause:java.lang.ClassCastException:org.apache.ibatis.executor.ExecutionPlaceholdercannotbecasttojava.util.Listatorg.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:95)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:59)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:95)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:40)~[mybatis-3.1.1.jar:3.1.1]

解决方案

解决方案七:
IConVideoInfoDao.selectById正常是返回一个实体吧你返回的应该的是List无法转换org.apache.ibatis.executor.ExecutionPlaceholdercannotbecasttojava.util.List
解决方案八:
引用1楼jimmy609的回复:

IConVideoInfoDao.selectById正常是返回一个实体吧你返回的应该的是List无法转换org.apache.ibatis.executor.ExecutionPlaceholdercannotbecasttojava.util.List

这个是没问题的,源码也是通过size()构造返回值的,这个问题是偶尔出现,同一段代码有时候没问题,有时候有问题。
解决方案九:
Theerrormayinvolvecom.letv.mms.core.dao.IConVideoInfoDao.selectById这里看上去只能查出一个结果,最好能看到代码
解决方案十:
看看大数据的时候有没有脏数据之类的,看结果集试试!
解决方案十一:
应该不是代码问题,是生产环境和本地不一致造成的。你比对下,你本地的JDK,Tomcat,或Weblogic,Websphere容器,各版本是否一致。
解决方案十二:
引用4楼winy_lm的回复:

看看大数据的时候有没有脏数据之类的,看结果集试试!

应该不是,因为一个id多次查询可能就中间的一次有问题。
解决方案十三:
引用3楼Inhibitory的回复:

Theerrormayinvolvecom.letv.mms.core.dao.IConVideoInfoDao.selectById这里看上去只能查出一个结果,最好能看到代码

我的代码应该是没问题的,因为同一个id多次查询也是有的时候有问题。具体异常在这里抛出Causedby:java.lang.ClassCastException:org.apache.ibatis.executor.ExecutionPlaceholdercannotbecasttojava.util.Listatorg.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:137)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:124)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:101)~[mybatis-3.1.1.jar:3.1.1]...42commonframesomitted
解决方案十四:
引用1楼jimmy609的回复:

IConVideoInfoDao.selectById正常是返回一个实体吧你返回的应该的是List无法转换org.apache.ibatis.executor.ExecutionPlaceholdercannotbecasttojava.util.List


解决方案十五:
类型转换异常、你看下哪里出现转换异常的、
解决方案:
光看问题,貌似是你返回值的问题,ibatis原来是要返回对象,结果你设置的返回集合~具体就不清楚了,你说的时不时报的话...很蛋疼
解决方案:
引用楼主zmy5353的回复:

今天在开发的时候,在数据量小的情况查询时正常,但是上到生产环境,查询量大的时候,时不时的就会抛出下面的异常。有没有大神帮忙解答一下~~mybatis的版本是3.1.1,用spring整合的。org.apache.ibatis.exceptions.PersistenceException:
解决方案:
Errorqueryingdatabase.Cause:java.lang.ClassCastException:org.apache.ibatis.executor.ExecutionPlaceholdercannotbecasttojava.util.List
解决方案:
Theerrormayexistinclasspathresource[mybatis/ConVideoInfoMapper.xml]
解决方案:
Theerrormayinvolvecom.letv.mms.core.dao.IConVideoInfoDao.selectById
解决方案:
Theerroroccurredwhileexecutingaquery
解决方案:
Cause:java.lang.ClassCastException:org.apache.ibatis.executor.ExecutionPlaceholdercannotbecasttojava.util.Listatorg.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:23)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:104)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:95)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.session.defaults.DefaultSqlSession.selectOne(DefaultSqlSession.java:59)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:95)~[mybatis-3.1.1.jar:3.1.1]atorg.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:40)~[mybatis-3.1.1.jar:3.1.1]

结贴了,由于是多数据源动态注入的SqlSession,取的时候没有包装成SqlSessionTemplate,没有走spring提供的代理。改成从sqlSessionTemplate.getMapper()取得dao之后,就不在有这种问题。但是问题的原因并没有找到,如果大神们有知道原因的可以继续~~

时间: 2024-12-27 01:51:51

mybatis查询异常的相关文章

java+Spring+mybatis 查询sql报错:无效的序列号!

问题描述 java+Spring+mybatis 查询sql报错:无效的序列号! java+Spring+mybatis+lucens+达梦数据库.应该能判断和数据库和lucen没关系.,着急在线等!mybatis: SELECT COUNT(*) FROM ""user_task"" title"" like '%""#{title}""%' And ""status"&qu

mysql datetime查询异常问题解决_Mysql

mysql datetime查询异常 异常:Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp (2011-05-25 11:38:40) 描述:非空无默认值的Datetime类型字段,查询时程序报以下错误: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp 解决方法:数据库连接串添加zeroDateTime

mybatis 查询返回map<id,javabean>

问题描述 mybatis 查询返回map<id,javabean> mybatis 查询返回map,key为某一字段,value为实体类 解决方案 直接配置查询返回值类型为resultMap就可以了啊.

spring-我用hibernate自动生成的findById查询异常 麻烦大神看一下

问题描述 我用hibernate自动生成的findById查询异常 麻烦大神看一下 做的项目是hibernate和spring整合 解决方案 应该是getHibernateTemplate为空,看看配置

mybatis查询是传参报错的处理

mybatis查询是传参报错的处理 自己用的数据库是mysql数据库,用mybatis管理,java后台是 spring框架, 控制台出现: 1 There is no getter for property named 'xxxx' in 'class java.lang.Integer 错误,查了一下,以为是xml中的sql的参数类型有错误,后来改了,不是,网上说改: <select id="selectAllUserByName" resultType="User

数据库查询异常

问题描述 最近做了一个进销存系统,正在做测试,昨天用一款软件做自动添加数据的时候,添加到50条左右,就异常了,异常的内容是errorconnecting:Timeoutexpired.Thetumeoutperiodelapsedpriortoobtainingaconnectionfromthepool.thismayhaveoccurredbecauseallpooledconnectionswereinuseandmaxpoolsize研究了下,好像是说数据库中查询的异常.是不是因为数据库

linq where 多条件查询 异常

问题描述 varquery1=fromplinsds.Tables[0].AsEnumerable()whereSysType==pl.Field<string>("SysType")&&userid==pl.Field<int>("UserID")selectpl;我数据库里UserID的数据类型是INT(11)型的userid是int型的执行到这里的时候报异常当从一个数字执行强制装换时,值必须是一个小于无限大的数字..哪位

关于mybatis的异常 求解决啊~

问题描述 org.apache.ibatis.binding.BindingException:Typeinterfacecom.xue.mapper.MixedMapperisalreadyknowntotheMapperRegistry.org.apache.ibatis.binding.MapperRegistry.addMapper(MapperRegistry.java:53)org.apache.ibatis.session.Configuration.addMapper(Confi

mybatis的分页异常

问题描述 大家好.本人用了mybatis实现分页查询,数据库采用mysql.当执行sql语句为:selectID,USERID,RESOURCE_ID,RESOURCE_NAME,IP_ADDRESS,OPER_TIME,MAC_ADDRESS,TYPEfromT_PORTAL_LOG_OPERwhere1=1limit0,15 mybatis无异常,结果值能够注入到List中.但是当sql为:selectID,USERID,RESOURCE_ID,RESOURCE_NAME,IP_ADDRES