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 2010/01/20 04:56:11 UTC

svn commit: r901050 - in /ibatis/java/ibatis-3/trunk: ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/ ibatis-3-compat/src/test/java/com/ibatis/sqlmap/ ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/ ibatis-3-core/src/main/jav...

Author: cbegin
Date: Wed Jan 20 03:56:10 2010
New Revision: 901050

URL: http://svn.apache.org/viewvc?rev=901050&view=rev
Log:
Added configuration property for autoMappingBehavior

Added:
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/AutoMappingBehavior.java
Modified:
    ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/Ibatis2Configuration.java
    ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/test/java/com/ibatis/sqlmap/MultiResultSetTest.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLConfigBuilder.java
    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/main/java/org/apache/ibatis/session/Configuration.java

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/Ibatis2Configuration.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/Ibatis2Configuration.java?rev=901050&r1=901049&r2=901050&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/Ibatis2Configuration.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/Ibatis2Configuration.java Wed Jan 20 03:56:10 2010
@@ -11,6 +11,7 @@
 import org.apache.ibatis.cache.decorators.LruCache;
 import org.apache.ibatis.cache.decorators.SoftCache;
 import org.apache.ibatis.session.Configuration;
+import org.apache.ibatis.session.AutoMappingBehavior;
 
 import javax.sql.DataSource;
 import java.util.HashMap;
@@ -28,6 +29,7 @@
   private Map<String, Boolean> postSelectKeyMap;
 
   public Ibatis2Configuration() {
+    setAutoMappingBehavior(AutoMappingBehavior.FULL);
     setUseGeneratedKeys(false);
     this.flushCachePlugin = new FlushCacheInterceptor();
     this.addInterceptor(flushCachePlugin);

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/test/java/com/ibatis/sqlmap/MultiResultSetTest.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/test/java/com/ibatis/sqlmap/MultiResultSetTest.java?rev=901050&r1=901049&r2=901050&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/test/java/com/ibatis/sqlmap/MultiResultSetTest.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/test/java/com/ibatis/sqlmap/MultiResultSetTest.java Wed Jan 20 03:56:10 2010
@@ -17,7 +17,6 @@
     initSqlMap("com/ibatis/sqlmap/maps/DerbySqlMapConfig.xml", Resources.getResourceAsProperties("com/ibatis/sqlmap/maps/DerbySqlMapConfig.properties"));
     initScript("scripts/account-init.sql");
     initScript("scripts/derby-proc-init.sql");
-
   }
 
   public void testShouldRetrieveTwoSetsOfTwoAccountsFromMultipleResultMaps() throws Exception {

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLConfigBuilder.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLConfigBuilder.java?rev=901050&r1=901049&r2=901050&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLConfigBuilder.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLConfigBuilder.java Wed Jan 20 03:56:10 2010
@@ -14,6 +14,7 @@
 import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.ExecutorType;
+import org.apache.ibatis.session.AutoMappingBehavior;
 import org.apache.ibatis.transaction.TransactionFactory;
 import org.apache.ibatis.type.TypeHandler;
 
@@ -153,6 +154,7 @@
           throw new BuilderException("The setting " + entry.getKey() + " is not known.  Make sure you spelled it correctly (case sensitive).");
         }
       }
+      configuration.setAutoMappingBehavior(AutoMappingBehavior.valueOf(stringValueOf(props.getProperty("autoMappingBehavior"), "PARTIAL")));
       configuration.setCacheEnabled(booleanValueOf(props.getProperty("cacheEnabled"), true));
       configuration.setLazyLoadingEnabled(booleanValueOf(props.getProperty("lazyLoadingEnabled"), false));
       configuration.setMultipleResultSetsEnabled(booleanValueOf(props.getProperty("multipleResultSetsEnabled"), true));

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=901050&r1=901049&r2=901050&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 Wed Jan 20 03:56:10 2010
@@ -15,6 +15,7 @@
 import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.ResultHandler;
 import org.apache.ibatis.session.RowBounds;
+import org.apache.ibatis.session.AutoMappingBehavior;
 import org.apache.ibatis.type.TypeHandler;
 import org.apache.ibatis.type.TypeHandlerRegistry;
 
@@ -174,7 +175,9 @@
       final MetaObject metaObject = configuration.newMetaObject(resultObject);
       loadMappedAndUnmappedColumnNames(rs, resultMap, mappedColumnNames, unmappedColumnNames);
       boolean foundValues = resultMap.getConstructorResultMappings().size() > 0;
-      foundValues = applyAutomaticMappings(rs, unmappedColumnNames, metaObject) || foundValues;
+      if (!AutoMappingBehavior.NONE.equals(configuration.getAutoMappingBehavior())) {
+        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=901050&r1=901049&r2=901050&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 Wed Jan 20 03:56:10 2010
@@ -14,6 +14,7 @@
 import org.apache.ibatis.reflection.MetaObject;
 import org.apache.ibatis.session.ResultHandler;
 import org.apache.ibatis.session.RowBounds;
+import org.apache.ibatis.session.AutoMappingBehavior;
 import org.apache.ibatis.type.TypeHandler;
 
 import java.sql.ResultSet;
@@ -99,7 +100,9 @@
         final MetaObject metaObject = configuration.newMetaObject(resultObject);
         loadMappedAndUnmappedColumnNames(rs, resultMap, mappedColumnNames, unmappedColumnNames);
         boolean foundValues = resultMap.getConstructorResultMappings().size() > 0;
-        foundValues = applyAutomaticMappings(rs, unmappedColumnNames, metaObject) || foundValues;
+        if (AutoMappingBehavior.FULL.equals(configuration.getAutoMappingBehavior())) {
+          foundValues = applyAutomaticMappings(rs, unmappedColumnNames, metaObject) || foundValues;
+        }
         foundValues = applyPropertyMappings(rs, resultMap, mappedColumnNames, metaObject, lazyLoader) || foundValues;
         foundValues = applyNestedResultMappings(rs, resultMap, metaObject) || foundValues;
         resultObject = foundValues ? resultObject : null;

Added: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/AutoMappingBehavior.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/AutoMappingBehavior.java?rev=901050&view=auto
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/AutoMappingBehavior.java (added)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/AutoMappingBehavior.java Wed Jan 20 03:56:10 2010
@@ -0,0 +1,5 @@
+package org.apache.ibatis.session;
+
+public enum AutoMappingBehavior {
+  NONE,PARTIAL,FULL
+}

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java?rev=901050&r1=901049&r2=901050&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/session/Configuration.java Wed Jan 20 03:56:10 2010
@@ -46,6 +46,7 @@
   private boolean cacheEnabled = true;
   private Integer defaultStatementTimeout;
   private ExecutorType defaultExecutorType = ExecutorType.SIMPLE;
+  private AutoMappingBehavior autoMappingBehavior = AutoMappingBehavior.PARTIAL;
 
   private Properties variables = new Properties();
   private ObjectFactory objectFactory = new DefaultObjectFactory();
@@ -98,6 +99,14 @@
     this.environment = environment;
   }
 
+  public AutoMappingBehavior getAutoMappingBehavior() {
+    return autoMappingBehavior;
+  }
+
+  public void setAutoMappingBehavior(AutoMappingBehavior autoMappingBehavior) {
+    this.autoMappingBehavior = autoMappingBehavior;
+  }
+
   public boolean isLazyLoadingEnabled() {
     return lazyLoadingEnabled;
   }