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