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 {