[ http://issues.apache.org/jira/browse/IBATIS-148?page=comments#action_12314920 ]
Manfred Klug commented on IBATIS-148: ------------------------------------- Brandon, a small variation of your test reveals the problem. the java code: public void testIterateNestedListPropertyC() throws SQLException { Account account = new Account(); account.setFirstName("Clinton"); Account newAccount = new Account(); newAccount.setLastName ("Jones"); account.setAccountList(new ArrayList()); account.getAccountList().add(newAccount); List list = sqlMap.queryForList("iterateNestedListPropertyC", account); // assertAccount1((Account) list.get(0)); // assertEquals(3, list.size()); } the mapped statement code: <select id="iterateNestedListPropertyC" parameterClass="testdomain.Account" resultClass="testdomain.Account"> select ACC_ID as id, ACC_FIRST_NAME as firstName, ACC_LAST_NAME as lastName, ACC_EMAIL as emailAddress from ACCOUNT <iterate open="WHERE" close="" conjunction="OR" property="accountList"> ACC_LAST_NAME = #accountList[].lastName# <isNotEqual prepend="OR" compareProperty="firstName" compareValue="test"> ACC_FIRST_NAME = #firstName# </isNotEqual> </iterate> </select> the final sql statement is: select ACC_ID as id, ACC_FIRST_NAME as firstName, ACC_LAST_NAME as lastName, ACC_EMAIL as emailAddress from ACCOUNT WHERE ACC_LAST_NAME = ? OR ACC_FIRST_NAME = ? the passed in parameters are: [0] = Clinton [1] = Jones and this is the problem. The correct parameters should be: [0] = Jones [1] = Clinton > Capability to use dynamic sql within iterates > --------------------------------------------- > > Key: IBATIS-148 > URL: http://issues.apache.org/jira/browse/IBATIS-148 > Project: iBatis for Java > Type: Improvement > Components: SQL Maps > Versions: 2.0.9b, 2.1.0 > Reporter: Sam Abeyratne > Assignee: Brandon Goodin > > I am getting the following error when I try to run a simple query that has a > dynamic <isNotEqual> within an iterate tag. Per Brandon, this is a known > issue that needs to be fixed. > Thanks! > Sam > 2005-06-06 17:11:25,284 [HttpRequestHandler-2083] DEBUG xxxDAO.class - > Parameters: {sidList=[abc1, abc2], carrier=ABCDE1, interfaceType=DSP} > 2005-06-06 17:11:25,284 [HttpRequestHandler-2083] DEBUG xxxDAO.class - > Calling queryForList with statementName: queryInterfaceErrorCount and > parameters: {sidList=[abc1, abc2], carrier= ABCDE1, interfaceType=DSP} > 2005-06-06 17:11:25,294 [HttpRequestHandler-2083] ERROR > xxxDispatchAction.class - Entered catch block in viewErrorLog: Exception in > queryInterfaceErrorCount: com.ibatis.common.beans.ProbeException: Error > getting ordinal list from JavaBean. Cause java.lang.NumberFormatException: > For input string: "" Caused by: java.lang.NumberFormatException: For input > string: "" > The sqlmap looks something like: > <select id="queryInterfaceErrorCount" parameterClass="java.util.Map" > resultMap="interface_error_count_result" > cacheModel="interface_error_count_cache"> > select sum(count) as count > from > ( > <iterate property="sidList" open="(" close=")" conjunction="UNION ALL"> > select count(*) as count > from [EMAIL PROTECTED] > where interface_type = #interfaceType# > <isNotEqual prepend="and" property="carrier" compareValue="All"> > carrier_name = #carrier# > </isNotEqual> > </iterate> > ) > </select> > > Java bean looks like: > public class InterfaceErrorCount { > private int count; > public int getCount() { > return count; > } > public void setCount(int count) { > this.count = count; > } > } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira