This is my first post to this forum. I've searched the forum for a related
post, but haven't found, so...
I've simplified my test case to get to the root of the problem so that's
what i'll present here. In short, a very simple query that works fine when
executed via command line (i'm using DB2), throws the following when trying
to map to a java obj via Ibatis:
Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in com/ibm/bl/data/sqlmapdao/sql/Link.xml.
--- The error occurred while applying a parameter map.
--- Check the Link.forVerbiage-InlineParameterMap.
--- Check the results (failed to retrieve results).
--- Cause: java.lang.ArrayIndexOutOfBoundsException: Array index out of
range: -1
Caused by: java.lang.ArrayIndexOutOfBoundsException: Array index out of
range: -1
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:561)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:536)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:93)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:70)
at
com.ibm.bl.data.sqlmapdao.LinkSqlMapDao.forVerbiage(LinkSqlMapDao.java:1285)
... 7 more
Here are the components related to my test. First, here's the class i'm
mapping to:
public class Verbiage {
private String verbiage;
private String htmlVerbiage;
public String getHtmlVerbiage() {
return htmlVerbiage;
}
public void setHtmlVerbiage(String htmlVerbiage) {
this.htmlVerbiage = htmlVerbiage;
}
public String getVerbiage() {
return verbiage;
}
public void setVerbiage(String verbiage) {
this.verbiage = verbiage;
}
}
Here's the method in my DAO that calls ibatis methods:
public void forVerbiage() {
com.ibm.bl.Verbiage verbiage=null;
try {
verbiage = (com.ibm.bl.Verbiage)
getSqlMapExecutor().queryForObject("Link.forVerbiage", null);
} catch (SQLException e) {
e.printStackTrace();
}
}
Here's my select statement:
<select id="Link.forVerbiage" resultMap="verbiageTest" >
SELECT
LINK.HTMLVERBIAGE AS LINK_HTMLVERBIAGE,
LINK.VERBIAGE AS LINK_VERBIAGE
FROM
ETS.LINK LINK
WHERE
LINK.LINK_ID=17097
</select>
Here's my resultmap
<resultMap id="verbiageTest" class="com.ibm.bl.Verbiage">
<result property="htmlVerbiage" column="LINK_HTMLVERBIAGE" />
<result property="verbiage" column="LINK_VERBIAGE" />
</resultMap>
And here's the definition of the columns in my table called "LINK" for
HTMLVERBIAGE and VERBIAGE:
"VERBIAGE" CLOB(16000),
"HTMLVERBIAGE" CLOB(32000)
Can anyone help me understand why i'm getting this exception?
thanks very much in advance for any time/thought...
thom.
--
View this message in context:
http://www.nabble.com/ArrayIndexOutOfBoundsException-mapping-CLOB-tf3909489.html#a11085076
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.