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/02/15 17:45:47 UTC

svn commit: r910257 - in /ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder: MapperBuilderAssistant.java SqlSourceBuilder.java

Author: cbegin
Date: Mon Feb 15 16:45:47 2010
New Revision: 910257

URL: http://svn.apache.org/viewvc?rev=910257&view=rev
Log:
improved ease of use with cursors

Modified:
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java?rev=910257&r1=910256&r2=910257&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/MapperBuilderAssistant.java Mon Feb 15 16:45:47 2010
@@ -97,7 +97,7 @@
     resultMap = applyCurrentNamespace(resultMap);
 
     // Class parameterType = parameterMapBuilder.type();
-    Class javaTypeClass = resolveParameterJavaType(parameterType, property, javaType);
+    Class javaTypeClass = resolveParameterJavaType(parameterType, property, javaType, jdbcType);
     TypeHandler typeHandlerInstance = (TypeHandler) resolveInstance(typeHandler);
 
     ParameterMapping.Builder builder = new ParameterMapping.Builder(configuration, property, javaTypeClass);
@@ -344,19 +344,21 @@
       }
     }
     if (javaType == null) {
-      //throw new BuilderException("Could not determine javaType for result property " + property + " using javaType " + javaType);
       javaType = Object.class;
     }
     return javaType;
   }
 
-  private Class resolveParameterJavaType(Class resultType, String property, Class javaType) {
+  private Class resolveParameterJavaType(Class resultType, String property, Class javaType, JdbcType jdbcType) {
     if (javaType == null) {
-      MetaClass metaResultType = MetaClass.forClass(resultType);
-      javaType = metaResultType.getGetterType(property);
+      if (JdbcType.CURSOR.equals(jdbcType)) {
+        javaType = java.sql.ResultSet.class;
+      } else {
+        MetaClass metaResultType = MetaClass.forClass(resultType);
+        javaType = metaResultType.getGetterType(property);
+      }
     }
     if (javaType == null) {
-      //throw new BuilderException("Could not determine javaType for result.  Specify property or javaType attribute.");
       javaType = Object.class;
     }
     return javaType;

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java?rev=910257&r1=910256&r2=910257&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java Mon Feb 15 16:45:47 2010
@@ -53,6 +53,8 @@
       MetaClass metaClass = MetaClass.forClass(parameterType);
       if (typeHandlerRegistry.hasTypeHandler(parameterType)) {
         propertyType = parameterType;
+      } else if ("CURSOR".equals(jdbcType)) {
+        propertyType = java.sql.ResultSet.class;
       } else if (metaClass.hasGetter(property)) {
         propertyType = metaClass.getGetterType(property);
       } else {