You defined a parameter-class list, this is java.util.List, then you
iterate over 'something' which does not exist. If you pass a single
parameter (like you do now) do not use the attribute 'property' of the
iterate-tag:
<select id="getRules" parameterClass="list"
resultClass="com.greenvalley.TMS.MML.Entity.Rule">SELECT rule_id,
name, description FROM rule
<dynamic prepend=" WHERE ">
<iterate prepend=" rule_id in " open="(" close=")"
conjunction=",">
#[]#
</iterate>
</dynamic>
</select>
-----Original Message-----
From: Eugeny N Dzhurinsky [mailto:[EMAIL PROTECTED]
Sent: dinsdag 9 augustus 2005 10:23
To: [email protected]
Subject: Re: <iterate>
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.executeQuery
WithCallback(GeneralStatement.java:188)
at
com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQuery
ForList(GeneralStatement.java:123)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMap
ExecutorDelegate.java:610)
at
com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMap
ExecutorDelegate.java:584)
at
com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessi
onImpl.java:101)
at
com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(SqlMapClient
Impl.java:78)
--
Eugene N Dzhurinsky