I'm currently getting an exception when attempting to pass in a HashMap as my
input parameterMap.  I can work around this situation temporarily by adding
to a POJO another field to hold the variable packageSet, but I'd rather not
because then it clutters up my object model.  I know this procedure works if
I use a POJO as my input, so I know it isn't the stored proc that is the
problem.

Here is the code:

HashMap map = new HashMap();
map.put("paymentPK", pay.getPaymentPK());
map.put("packageId",tckt.getCaseNum().getPackageSet());
map.put("spStatus", new Integer(0));

                                                
tempLst =
SqlMapConfig.getSqlMap().queryForList(MACSConstants.GET_DISBURSED_ATS_PAYMNT_AMT,
map);
DAOUtil.verifySPSuccess((Integer) map.get("spStatus"));

Here is the XML:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd";> 
  
<sqlMap namespace="GetDisbursedATSPaymntAmts">
<parameterMap id="inMap" class="java.util.HashMap" >
    <parameter property="paymentPK" jdbcType="INTEGER" 
javaType="java.lang.Integer" mode="IN"/>
    <parameter property="packageId" jdbcType="CHAR"    
javaType="java.lang.String"  mode="IN"/>
    <parameter property="spStatus"  jdbcType="INTEGER" 
javaType="java.lang.Integer" mode="INOUT"/>
</parameterMap>
  
<resultMap id="outMap" class="nj.aoc.ito.macs.business.common.bo.Penalty">
    <result property="type"       columnIndex="1"/>
    <result property="code.key"   columnIndex="2"/>
    <result property="paid"       columnIndex="3"/>
    <result property="code.value" columnIndex="4"/>
</resultMap>
  
<procedure id="getDisbursedATSPaymntAmts" parameterMap="inMap"
resultMap="outMap">{call $dbSchema$.CMSP3064(?,?,?)}</procedure>
           
</sqlMap>

Exception:

[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R Caused by:
com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in storedProcedureMapping/CMSP3064.xml.  
--- The error occurred while applying a parameter map.  
--- Check the GetDisbursedATSPaymntAmts.atsDsbrsdPaymntIn.  
--- Check the statement (update procedure failed).  
--- Cause: com.ibm.db2.jcc.b.SqlException: THE STRING REPRESENTATION OF A
NAME IS INVALID
Caused by: com.ibm.db2.jcc.b.SqlException: THE STRING REPRESENTATION OF A
NAME IS INVALID
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:181)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:119)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:610)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:584)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:105)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:77)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
nj.aoc.ito.macs.business.dao.inquiry.PaymentDAO.readTrafficPaymentTable(PaymentDAO.java:139)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    ... 91 more
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R Caused by:
com.ibm.db2.jcc.b.SqlException: THE STRING REPRESENTATION OF A NAME IS
INVALID
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.b.zc.d(zc.java:1351)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.a.db.l(db.java:366)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.a.db.e(db.java:102)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.a.r.e(r.java:72)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.a.sb.i(sb.java:194)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.b.zc.q(zc.java:1319)
[11/26/08 16:30:45:293 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.b.ad.d(ad.java:2281)
[11/26/08 16:30:45:309 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.b.bd.sb(bd.java:159)
[11/26/08 16:30:45:309 EST] 0000003e SystemErr     R    at
com.ibm.db2.jcc.b.bd.execute(bd.java:142)
[11/26/08 16:30:45:309 EST] 0000003e SystemErr     R    at
com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.pmiExecute(WSJdbcPreparedStatement.java:655)
[11/26/08 16:30:45:309 EST] 0000003e SystemErr     R    at
com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.execute(WSJdbcPreparedStatement.java:432)
[11/26/08 16:30:45:309 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:287)
[11/26/08 16:30:45:309 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:34)
[11/26/08 16:30:45:309 EST] 0000003e SystemErr     R    at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:169)
[11/26/08 16:30:45:309 EST] 0000003e SystemErr     R    ... 97 more


Any help is appreciated.

Thanks,

Kevin
-- 
View this message in context: 
http://www.nabble.com/Exception-being-thrown-when-using-HashMap-tp20709380p20709380.html
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.

Reply via email to