`
远去的渡口
  • 浏览: 472901 次
  • 性别: Icon_minigender_2
  • 来自: 上海转北京
社区版块
存档分类
最新评论

Ibatis错误com.ibatis.common.jdbc.exception.NestedSQLException

阅读更多

今天遇到一个问题,Ibatis查询时,同样的配置,当返回的数据集为空的时候报错,有数据时就不报错。

org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];   
--- The error occurred in com/tongcard/tcc/report/ibatis/memberReport_SqlMap.xml.  
--- The error occurred while applying a result map.  
--- Check the MemberAddReport_Map.totalMember.  
--- The error happened while setting a property on the result object.  
--- Cause: net.sf.cglib.beans.BulkBeanException; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/tongcard/tcc/report/ibatis/memberReport_SqlMap.xml.  
--- The error occurred while applying a result map.  
--- Check the MemberAddReport_Map.totalMember.  
--- The error happened while setting a property on the result object.  
--- Cause: net.sf.cglib.beans.BulkBeanException
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
	at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:212)
	at org.springframework.orm.ibatis.SqlMapClientTemplate.executeWithListResult(SqlMapClientTemplate.java:249)
	at org.springframework.orm.ibatis.SqlMapClientTemplate.queryForList(SqlMapClientTemplate.java:296)
	at com.tongcard.tcc.report.manager.impl.MemberAddReportManagerImpl.queryTotalMemberAdd(MemberAddReportManagerImpl.java:32)
	at com.tongcard.tcc.report.manager.impl.MemberAddReportManagerImpl$$FastClassByCGLIB$$c8e1b67c.invoke(<generated>)
	at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
	at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
	at com.tongcard.tcc.report.manager.impl.MemberAddReportManagerImpl$$EnhancerByCGLIB$$2b581bd2.queryTotalMemberAdd(<generated>)
	at com.tongcard.tcc.report.MemberAddReportService.loadMemberAdd(MemberAddReportService.java:95)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdapter.java:421)
	at flex.messaging.services.RemotingService.serviceMessage(RemotingService.java:183)
	at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java:1503)
	at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndpoint.java:884)
	at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBrokerFilter.java:121)
	at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:158)
	at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java:44)
	at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFilter.java:67)
	at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:146)
	at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:278)
	at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:101)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.tongcard.tcc.util.MultipleDataSourceFilter.doFilter(MultipleDataSourceFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.tongcard.tcc.util.VirtualSessionFilter.doFilter(VirtualSessionFilter.java:27)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.tongcard.tcc.util.VirtualSessionFilter.doFilter(VirtualSessionFilter.java:27)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:619)

 

先记下这个异常。

 

 

分享到:
评论
2 楼 远去的渡口 2011-04-22  
今天才发现,解决方案一直忘记补上了,呵呵,这个异常出现的主要原因是number类型的数据数据库里是空的,在model封装层是用int类型,这样在调用set()方法时就会出问题。解决方案是在Ibatis的数字类型的property中加上nullValue="0"就可以了。
<resultMap class="AccountCouponReport" id="couponMap">
<result property="couponName" column="COUPON_NAME"/>
<result property="couponTypeId" column="COUPON_TYPE_ID"/>
<result property="couponMoney" column="COUPON_MONEY" nullValue="0"/>
<result property="sendNum" column="SEND_NUMBER" nullValue="0"/>
1 楼 select*from爱 2010-11-04  
真是个勤奋的好孩子

相关推荐

    IBatis.DataMapper.1.6.2.bin.zip

    本篇文章将围绕"IBatis.DataMapper.1.6.2.bin.zip"和"IBatis.DataMapper.1.9"这两个开发包,深入探讨其核心概念、功能特性以及版本间的差异,帮助开发者更好地理解和应用这一框架。 1. **IBatis DataMapper简介** ...

    ibatis-2.3.4.726.jar,ibatis-2.3.0.677.jar,ibatis-2.3.3.720.jar下载

    这里提到的是iBATIS的三个不同版本的jar包:ibatis-2.3.4.726.jar、ibatis-2.3.0.677.jar以及ibatis-2.3.3.720.jar。 首先,让我们深入了解iBATIS的核心概念和功能: 1. **SQL Map配置**:iBATIS的核心是SQL Map...

    IBATISJDBC包

    "IBATISJDBC包"指的是包含了用于支持IBATIS框架运行所需的JDBC(Java Database Connectivity)驱动及相关依赖的集合。在MYECLIPSE这样的集成开发环境中,这些JAR包是必不可少的,因为它们使得开发者能够无缝地将...

    ibatis-2.3.3.720.jar

    ibatis-2.3.3.720.jar

    ibatis2.3.4.8.jar 和 ibatis-2.3.4.726.jar两个版本的下载

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责简化数据库操作,将SQL语句与Java代码分离,使得开发人员能够更加专注于业务逻辑。在本主题中,我们将深入探讨Ibatis的两个特定版本:ibatis2.3.4.8....

    ibatis-core-3.0.jar org.apache.ibatis.annotations.Param

    `org.apache.ibatis.annotations.Param`是MyBatis中的一个重要注解,用于处理方法参数映射。 `@Param`注解主要用于SQL查询中的动态参数绑定,尤其是在动态SQL语句中。在MyBatis的映射文件或者Mapper接口中,当我们...

    IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2

    标题和描述中提到的"IBatisNet.Common.1.6.2、IBatis.DataAccess.1.9.2、IBatis.DataMapper.1.6.2"是针对一个名为IBatisNet的框架的不同组件的版本号。IBatisNet是一个在.NET平台上实现的开源持久层框架,它源于Java...

    ibatis-2.3.2.715

    《深入解析iBatis 2.3.2.715源代码》 iBatis,作为一款轻量级的Java持久层框架,以其灵活、高效的特点,在许多项目中得到了广泛应用。本文将针对iBatis的2.3.2.715版本的源代码进行深入剖析,旨在帮助开发者更好地...

    ibatis-api.chm

    持久层框架ibatis的API com.ibatis.common.beans com.ibatis.common.io com.ibatis.common.jdbc ...

    ibatis-common.jar包

    《深入解析ibatis-common.jar包》 在Java开发领域,Ibatis作为一个优秀的持久层框架,以其灵活、易用的特点深受开发者喜爱。而ibatis-common.jar包则是Ibatis框架的重要组成部分,它提供了诸多实用功能,帮助开发者...

    ibatis-2.3.4.732.jar

    ibatis-2.3.4.732.jar

    IBatis.DataMapper.1.6.2

    标题 "IBatis.DataMapper.1.6.2" 指的是 IBatis 数据映射器的一个特定版本,即 1.6.2 版本。IBatis 是一个流行且广泛使用的开源持久层框架,它允许开发者将 SQL 查询与.NET 应用程序中的对象模型进行解耦,提供了一...

    ibatis-2.3.0.677.jar

    开发者使用 iBATIS 可以实现更细粒度的数据库操作控制,避免了 EJB 的复杂性,同时保留了 JDBC 的灵活性。在 iBATIS 2.x 版本中,XML 是主要的配置方式,而在后续的 MyBatis(iBATIS 的后续项目)中,更多地采用了...

    ibatis-2.3.3.7.jar

    ibatis-2.3.3.7.jar

    ibatis-2.3.2.715.jar

    《深入解析ibatis-2.3.2.715.jar》 在Java开发领域,Ibatis作为一个轻量级的持久层框架,以其灵活、易用的特点深受开发者喜爱。本次我们将详细探讨`ibatis-2.3.2.715.jar`这个特定版本的Ibatis库,它为开发者提供了...

    IBatis.net-IBatis.DataAccess.1.9.2/IBatis.DataMapper.1.6.2

    本篇将深入探讨IBatis.Net的核心组件——IBatis.DataAccess.1.9.2和IBatis.DataMapper.1.6.2,以及它们在数据访问中的关键作用。 **一、IBatis.DataAccess** IBatis.DataAccess是IBatis.net框架的一部分,主要负责...

    ibatis-2.3.4.726最新API chm格式

    ibatis-2.3.4.726最新API chm格式 非常好用

    ibatis-2.3.4.726官方最新开发包

    - **ibatis.jar**:这是Ibatis的主库,包含了所有必需的类和接口。 - **sqlmapconfig.xml**:这是Ibatis的全局配置文件,用于配置数据源、事务管理器、日志工厂等。 - **mapper.xml**:这些文件是SQL映射文件,每个...

    ibatis-2.3.4.726.jar

    8. Exception Handling:iBATIS有一套完善的异常处理机制,可以根据不同的数据库错误返回自定义的异常信息,方便开发者调试和处理问题。 9. 兼容性:iBATIS支持多种数据库,如MySQL、Oracle、SQL Server等,通过...

    ibatis-generator.zip

    Ibatis Generator的工作原理是基于Java反射机制和JDBC,通过解析数据库元数据,自动生成与数据库表结构对应的Java类和XML配置文件。这样,开发者只需要关注业务逻辑,而无需关注底层数据访问层的实现细节。 在使用...

Global site tag (gtag.js) - Google Analytics