`

ibatis The error happened while setting a property on the result object

阅读更多
问题:
在使用Ibatis查询数据返回时,报如下错误:
[com.show.add.proxy.SqlMapClientTemplateProxy]com.ibatis.common.jdbc.exception.NestedSQLException:   
		--- The error occurred in com/show/add/ibatis/adChannel.xml.  
		--- The error occurred while applying a result map.  
		--- Check the queryRomStatisticsInfoCount-AutoResultMap.  
		--- The error happened while setting a property on the result object.  
		--- Cause: java.lang.RuntimeException: Error setting property 'setCritical_value' of 'com.show.add.domain.RomAdResult@11d2625d'.  Cause: java.lang.IllegalArgumentException
			at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188)
			at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForObject(GeneralStatement.java:104)
			at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:566)
			at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:541)
			at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106)
			at com.show.add.proxy.SqlMapClientTemplateProxy$2.doInSqlMapClient(SqlMapClientTemplateProxy.java:344)
			at com.show.add.proxy.SqlMapClientTemplateProxy.execute(SqlMapClientTemplateProxy.java:229)
			at com.show.add.proxy.SqlMapClientTemplateProxy.queryForObject(SqlMapClientTemplateProxy.java:342)
			at com.show.add.dao.AdChannelDeductionDao.queryRomStatisticsInfoCount(AdChannelDeductionDao.java:165)
			at com.show.add.service.impl.AdChannelDeductionServiceImpl.queryRomStatisticsInfoCount(AdChannelDeductionServiceImpl.java:73)
			at com.show.add.action.GetRomUserDataAction.serach(GetRomUserDataAction.java:165)
			at com.show.add.action.GetRomUserDataAction.setParameters(GetRomUserDataAction.java:144)
			at com.show.add.action.GetRomUserDataAction.login(GetRomUserDataAction.java:83)
			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 com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
			at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
			at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
			at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
			at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
			at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
			at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
			at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
			at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
			at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
			at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
			at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
			at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
			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:191)
			at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
			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:293)
			at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
			at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
			at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
			at java.lang.Thread.run(Thread.java:662)
		Caused by: java.lang.RuntimeException: Error setting property 'setCritical_value' of 'com.show.add.domain.RomAdResult@11d2625d'.  Cause: java.lang.IllegalArgumentException
			at com.ibatis.sqlmap.engine.accessplan.PropertyAccessPlan.setProperties(PropertyAccessPlan.java:52)
			at com.ibatis.sqlmap.engine.exchange.JavaBeanDataExchange.setData(JavaBeanDataExchange.java:112)
			at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.setResultObjectValues(BasicResultMap.java:373)
			at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:64)
			at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:382)
			at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:301)
			at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:190)
			at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery(GeneralStatement.java:205)
			at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:173)
			... 76 more
		Caused by: java.lang.IllegalArgumentException
			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 com.ibatis.sqlmap.engine.accessplan.PropertyAccessPlan.setProperties(PropertyAccessPlan.java:46)
			... 84 more



原因:
返回数据类型与设置对象属性不匹配,如:当属性类型为数值型,而返回数据为空,也会报此类异常,本处也是类似异常


解决方案:
把对象属性由INT类型修改为Integer类型
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics