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 {