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 2009/12/05 17:31:51 UTC

svn commit: r887558 - in /ibatis/java/ibatis-3/trunk/ibatis-3-core/src: main/java/org/apache/ibatis/executor/resultset/ test/java/org/apache/ibatis/submitted/overwritingproperties/

Author: cbegin
Date: Sat Dec  5 16:31:50 2009
New Revision: 887558

URL: http://svn.apache.org/viewvc?rev=887558&view=rev
Log:
IBATIS-693 and IBATIS-684 auto props overwriting explicit props

Modified:
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java?rev=887558&r1=887557&r2=887558&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/FastResultSetHandler.java Sat Dec  5 16:31:50 2009
@@ -174,8 +174,8 @@
       final MetaObject metaObject = MetaObject.forObject(resultObject);
       loadMappedAndUnmappedColumnNames(rs, resultMap, mappedColumnNames, unmappedColumnNames);
       boolean foundValues = resultMap.getConstructorResultMappings().size() > 0;
-      foundValues = applyPropertyMappings(rs, resultMap, mappedColumnNames, metaObject, lazyLoader) || foundValues;
       foundValues = applyAutomaticMappings(rs, unmappedColumnNames, metaObject) || foundValues;
+      foundValues = applyPropertyMappings(rs, resultMap, mappedColumnNames, metaObject, lazyLoader) || foundValues;
       resultObject = foundValues ? resultObject : null;
       return resultObject;
     }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java?rev=887558&r1=887557&r2=887558&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NestedResultSetHandler.java Sat Dec  5 16:31:50 2009
@@ -99,8 +99,8 @@
         final MetaObject metaObject = MetaObject.forObject(resultObject);
         loadMappedAndUnmappedColumnNames(rs, resultMap, mappedColumnNames, unmappedColumnNames);
         boolean foundValues = resultMap.getConstructorResultMappings().size() > 0;
-        foundValues = applyPropertyMappings(rs, resultMap, mappedColumnNames, metaObject, lazyLoader) || foundValues;
         foundValues = applyAutomaticMappings(rs, unmappedColumnNames, metaObject) || foundValues;
+        foundValues = applyPropertyMappings(rs, resultMap, mappedColumnNames, metaObject, lazyLoader) || foundValues;
         foundValues = applyNestedResultMappings(rs, resultMap, metaObject) || foundValues;
         resultObject = foundValues ? resultObject : null;
       }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml?rev=887558&r1=887557&r2=887558&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapper.xml Sat Dec  5 16:31:50 2009
@@ -4,7 +4,7 @@
 
   <resultMap type="Foo" id="fooResult">
     <result property="field1" column="field1" jdbcType="INTEGER"/>
-    <!--<result property="field4" column="field3" jdbcType="INTEGER"/>-->
+    <result property="field4" column="field3" jdbcType="INTEGER"/>
     <result property="field3" column="field4" jdbcType="INTEGER"/>
     <association property="field2" javaType="Bar">
       <result property="field1" column="bar_field1" jdbcType="INTEGER"/>
@@ -23,8 +23,8 @@
     (
     #{field1,jdbcType=INTEGER},
     #{field2.field1,jdbcType=INTEGER},
-    #{field4,jdbcType=INTEGER},
-    #{field3,jdbcType=INTEGER}
+    #{field3,jdbcType=INTEGER},
+    #{field4,jdbcType=INTEGER}
     )
   </insert>
 

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java?rev=887558&r1=887557&r2=887558&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/FooMapperTest.java Sat Dec  5 16:31:50 2009
@@ -41,23 +41,29 @@
   public void testOverwriteWithDefault() {
     final FooMapper mapper = session.getMapper(FooMapper.class);
     final Bar bar = new Bar(2L);
-    final Foo foo = new Foo(1L, bar, 3, 4);
-    mapper.insertFoo(foo);
-    session.commit();
-    final Foo read = mapper.selectFoo();
+    final Foo inserted = new Foo(1L, bar, 3, 4);
+    mapper.insertFoo(inserted);
+
+    final Foo selected = mapper.selectFoo();
     
     // field1 is explicitly mapped properly
-    Assert.assertEquals(foo.getField1(), read.getField1());
-
-    // field4 is explicitly remapped to field3 in the resultmap
-    Assert.assertEquals(foo.getField4(), read.getField3());
+    // <result property="field1" column="field1" jdbcType="INTEGER"/>
+    Assert.assertEquals(inserted.getField1(), selected.getField1());
 
     // field4 is not mapped in the result map
-    Assert.assertEquals(null, read.getField4() );
+    // <result property="field4" column="field3" jdbcType="INTEGER"/>
+    Assert.assertEquals(inserted.getField3(), selected.getField4() );
+
+    // field4 is explicitly remapped to field3 in the resultmap
+    // <result property="field3" column="field4" jdbcType="INTEGER"/>
+    Assert.assertEquals(inserted.getField4(), selected.getField3());
 
     // is automapped from the only column that matches... which is Field1
     // probably not the intention, but it's working correctly given the code
-    Assert.assertEquals(1, read.getField2().getField1());
+    // <association property="field2" javaType="Bar">
+    //  <result property="field1" column="bar_field1" jdbcType="INTEGER"/>
+    // </association>
+    Assert.assertEquals(inserted.getField2().getField1(), selected.getField2().getField1());
   }
 
   @AfterClass