Author: jgbutler Date: Mon Jul 6 21:05:34 2009 New Revision: 791615 URL: http://svn.apache.org/viewvc?rev=791615&view=rev Log: Make nested foreach tags work
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/DynamicContext.java ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/ForEachSqlNode.java ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/PrefixSqlNode.java Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/DynamicContext.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/DynamicContext.java?rev=791615&r1=791614&r2=791615&view=diff ============================================================================== --- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/DynamicContext.java (original) +++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/DynamicContext.java Mon Jul 6 21:05:34 2009 @@ -8,6 +8,7 @@ private Map<String,Object> bindings = new HashMap<String,Object>(); private StringBuilder sqlBuilder = new StringBuilder(); + private int uniqueNumber = 0; public DynamicContext(Object parameterObject) { if (parameterObject instanceof Map) { @@ -37,5 +38,8 @@ public String getSql() { return sqlBuilder.toString().trim(); } - + + public int getUniqueNumber() { + return uniqueNumber++; + } } Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/ForEachSqlNode.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/ForEachSqlNode.java?rev=791615&r1=791614&r2=791615&view=diff ============================================================================== --- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/ForEachSqlNode.java (original) +++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/ForEachSqlNode.java Mon Jul 6 21:05:34 2009 @@ -32,9 +32,10 @@ int i = 0; for (Object o : iterable) { first = applySeparator(context, first); - applyItem(context, o, i); + int uniqueNumber = context.getUniqueNumber(); + applyItem(context, o, uniqueNumber); applyIndex(context, i); - contents.apply(new FilteredDynamicContext(context, item, i)); + contents.apply(new FilteredDynamicContext(context, item, uniqueNumber)); i++; } applyClose(context); @@ -117,6 +118,11 @@ delegate.appendSql(parser.parse(sql)); } + + @Override + public int getUniqueNumber() { + return delegate.getUniqueNumber(); + } } Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/PrefixSqlNode.java URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/PrefixSqlNode.java?rev=791615&r1=791614&r2=791615&view=diff ============================================================================== --- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/PrefixSqlNode.java (original) +++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/dynamic/PrefixSqlNode.java Mon Jul 6 21:05:34 2009 @@ -72,6 +72,11 @@ public String getSql() { return delegate.getSql(); } + + @Override + public int getUniqueNumber() { + return delegate.getUniqueNumber(); + } } }