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 {