You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2005/06/25 06:20:31 UTC
svn commit: r201714 - in /ibatis/trunk/java/mapper/mapper2:
src/com/ibatis/sqlmap/engine/builder/xml/
src/com/ibatis/sqlmap/engine/mapping/result/ test/com/ibatis/sqlmap/
test/com/ibatis/sqlmap/maps/
Author: cbegin
Date: Fri Jun 24 21:20:29 2005
New Revision: 201714
URL: http://svn.apache.org/viewcvs?rev=201714&view=rev
Log:
IBATIS-136
Fixed. Extended result maps now carry forward the groupBy attribute, and also allow it to be overridden.
Modified:
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java
ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/RepeatingGroupMappingTest.java
ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/RepeatingGroupMapping.xml
Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java
URL: http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java?rev=201714&r1=201713&r2=201714&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapParser.java Fri Jun 24 21:20:29 2005
@@ -343,6 +343,14 @@
for (int i = 0; i < resultMappings.length; i++) {
vars.resultMappingList.add(resultMappings[i]);
}
+ if (groupBy == null || groupBy.length() == 0) {
+ if (extendedResultMap.hasGroupBy()) {
+ Iterator i = extendedResultMap.groupByProps();
+ while (i.hasNext()) {
+ vars.currentResultMap.addGroupByProperty((String) i.next());
+ }
+ }
+ }
}
vars.errorCtx.setMoreInfo("Check the result mappings.");
Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java
URL: http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java?rev=201714&r1=201713&r2=201714&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/BasicResultMap.java Fri Jun 24 21:20:29 2005
@@ -196,6 +196,14 @@
groupByProps.add(name);
}
+ public boolean hasGroupBy() {
+ return groupByProps != null && groupByProps.size() > 0;
+ }
+
+ public Iterator groupByProps() {
+ return groupByProps.iterator();
+ }
+
public void addNestedResultMappings(ResultMapping mapping) {
if (nestedResultMappings == null) {
nestedResultMappings = new ArrayList();
Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/RepeatingGroupMappingTest.java
URL: http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/RepeatingGroupMappingTest.java?rev=201714&r1=201713&r2=201714&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/RepeatingGroupMappingTest.java (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/RepeatingGroupMappingTest.java Fri Jun 24 21:20:29 2005
@@ -17,6 +17,11 @@
assertEquals (5, list.size());
}
+ public void testGroupByExtended() throws Exception {
+ List list = sqlMap.queryForList("getAllCategoriesExtended",null);
+ assertEquals (5, list.size());
+ }
+
public void testNestedProperties() throws Exception {
List list = sqlMap.queryForList("getFish",null);
assertEquals (1, list.size());
Modified: ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/RepeatingGroupMapping.xml
URL: http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/RepeatingGroupMapping.xml?rev=201714&r1=201713&r2=201714&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/RepeatingGroupMapping.xml (original)
+++ ibatis/trunk/java/mapper/mapper2/test/com/ibatis/sqlmap/maps/RepeatingGroupMapping.xml Fri Jun 24 21:20:29 2005
@@ -11,6 +11,10 @@
<result property="productList" resultMap="productResult"/>
</resultMap>
+ <resultMap id="categoryResultExtended" class="testdomain.Category" extends="categoryResult">
+ <result property="name" column="catname"/>
+ </resultMap>
+
<resultMap id="productResult" class="testdomain.Product" groupBy="productId">
<result property="productId" column="productid"/>
<result property="categoryId" column="category"/>
@@ -31,6 +35,20 @@
</resultMap>
<select id="getAllCategories" resultMap="categoryResult" >
+ select
+ c.catid, c.name as catname, c.descn as catdescn,
+ p.productid, p.category, p.name as prodname,
+ p.descn as proddescn, i.itemid, i.productid,
+ i.listprice, i.unitcost, i.supplier, i.status,
+ i.attr1, i.attr2, i.attr3, i.attr4, i.attr5,
+ v.itemid, v.qty
+ from category c, product p, item i, inventory v
+ where c.catid = p.category
+ and p.productid = i.productid
+ and i.itemid = v.itemid
+ </select>
+
+ <select id="getAllCategoriesExtended" resultMap="categoryResultExtended" >
select
c.catid, c.name as catname, c.descn as catdescn,
p.productid, p.category, p.name as prodname,