I'm using Spring framework with iBatis and I'm having an issue with using the
sqlMapClient.queryForList(String arg, int arg1, int arg2). Anyway the
Transfer Object is deptNum and year are defined as String's. Also the table
defines dept_num and year as varchars.  Here's the resultMap:
<resultMap id="result" class="com.talisen.domain.DeptBsDetail">
    <result property="deptNum" column="dept_num" columnIndex="1"/>
    <result property="year" column="year" columnIndex="2"/>
    <result property="monthDate" column="month_date" columnIndex="3"/>
    <result property="wopm1" column="wopm1" columnIndex="4"/>
    <result property="wonum" column="wonum" columnIndex="5"/>
    <result property="usageCost" column="usage_cost" columnIndex="6"/>
    <result property="materialCost" column="material_cost" columnIndex="7"/>
    <result property="laborCost" column="labor_cost" columnIndex="8"/>
    <result property="serviceCost" column="serv_cost" columnIndex="9"/>
    <result property="totalCost" column="total_cost" columnIndex="10"/>
    <result property="wopm4" column="wopm4" columnIndex="11"/>
    <result property="description" column="description" columnIndex="12"/>
    <result property="ledgerCode" column="ledger_code" columnIndex="13"/>
    <result property="yearmonth" column="yearmonth" columnIndex="14"/>
  </resultMap>

 <select id="getDeptBudgetDetailbyDeptNumAndYear" resultMap="result">
    select
          dept_bs_detail_yymm.dept_num,
          dept_bs_detail_yymm.year,
          dept_bs_detail_yymm.month_date,
          dept_bs_detail_yymm.wopm1,
          dept_bs_detail_yymm.wonum,
          dept_bs_detail_yymm.usage_cost,
          dept_bs_detail_yymm.material_cost,
          dept_bs_detail_yymm.labor_cost,
          dept_bs_detail_yymm.serv_cost,
          dept_bs_detail_yymm.total_cost,
          dept_bs_detail_yymm.wopm4,
          dept_bs_detail_yymm.description,
          dept_bs_detail_yymm.ledger_code,
          dept_bs_detail_yymm.yearmonth
    from dept_bs_detail_yymm
    where dept_bs_detail_yymm.dept_num = #deptNum#
    and dept_bs_detail_yymm.year = #year#
  </select>

Here's the full error I'm getting:
com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/talisen/dao/ibatis/maps/DeptBsDetail.xml.  
--- The error occurred while applying a parameter map.  
--- Check the getDeptBudgetDetailbyDeptNumAndYear-InlineParameterMap.  
--- Check the parameter mapping for the 'year' property.  
--- Cause: java.lang.ArrayIndexOutOfBoundsException: 1
        at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:204)
        at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
        at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
        at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:126)
        at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:130)
        at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:106)
        at
com.talisen.dao.ibatis.SqlMapDeptBsDetailDao.getDeptBudgetDetail(SqlMapDeptBsDetailDao.java:37)
        at
com.talisen.domain.logic.NestleDataFetcherImpl.getDeptBudgetDetail(NestleDataFetcherImpl.java:58)
        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:585)
        at
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
        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.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
        at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
        at
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at $Proxy16.getDeptBudgetDetail(Unknown Source)
        at
com.talisen.domain.util.XMLBuilder.createDepartmentXML(XMLBuilder.java:254)
        at com.talisen.domain.util.XMLBuilder.createXML(XMLBuilder.java:223)
        at
com.talisen.service.NestleService.handleRequestInternal(NestleService.java:143)
        at
org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
        at
org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
        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:571)
        at
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:718)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
        at
org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:411)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:290)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:271)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:202)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:206)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:150)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:632)
        at
org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:577)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:571)
        at 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1080)
        at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:270)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:637)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:568)
        at
com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:813)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:339)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:261)
        at
com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:212)
        at
com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:361)
        at 
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265)
        at
com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at
com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameter(ParameterMap.java:153)
        at
com.ibatis.sqlmap.engine.mapping.parameter.ParameterMap.setParameters(ParameterMap.java:126)
        at
com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:183)
        at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.sqlExecuteQuery(MappedStatement.java:221)
        at
com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)

Does anyone have any idea? I thought about using the sqlMapClientTemplate
that spring provides but queryForList method in that case doesn't have
anything where I can pass two parms to it, where I can get a list back.


-- 
View this message in context: 
http://www.nabble.com/The-error-occurred-while-applying-a-parameter-map.-tp19070022p19070022.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.

Reply via email to