On Mon, Aug 08, 2005 at 07:46:51PM +0200, Niels Beekman wrote:
> Read carefully, my second sample uses the list directly:
>
> > When passing the list directly as argument use:
> >
> > <iterate open="(" close=")">
> > #[]#
> > </iterate>
what's wrong here:
<select id="getRules" parameterClass="list"
resultClass="com.greenvalley.TMS.MML.Entity.Rule">SELECT rule_id,
name, description FROM rule
<dynamic prepend=" WHERE ">
<iterate property="something" prepend=" rule_id in " open="(" close=")"
conjunction=",">
#something[]#
</iterate>
</dynamic>
</select>
?
the error is
--- The error occurred in iBATIS/Rule.xml.
--- The error occurred while preparing the mapped statement for execution.
--- Check the getRules.
--- Check the parameter map.
--- Cause: java.lang.StringIndexOutOfBoundsException: String index out of
range: -2
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
range: -2
com.ibatis.common.jdbc.exception.NestedSQLException:
--- The error occurred in iBATIS/Rule.xml.
--- The error occurred while preparing the mapped statement for execution.
--- Check the getRules.
--- Check the parameter map.
--- Cause: java.lang.StringIndexOutOfBoundsException: String index out of
range: -2
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of
range: -2
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback(GeneralStatement.java:188)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList(GeneralStatement.java:123)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:610)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:584)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:101)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClientImpl.java:78)
--
Eugene N Dzhurinsky