Author: cbegin
Date: Mon Sep 7 07:23:49 2009
New Revision: 812020
URL: http://svn.apache.org/viewvc?rev=812020&view=rev
Log:
ignored properties of unknown types
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java?rev=812020&r1=812019&r2=812020&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/NewResultSetHandler.java
Mon Sep 7 07:23:49 2009
@@ -124,10 +124,12 @@
final List<ResultMapping> propertyMappings =
resultMap.getPropertyResultMappings();
for (ResultMapping propertyMapping : propertyMappings) {
final TypeHandler typeHandler = propertyMapping.getTypeHandler();
- final String property = propertyMapping.getProperty();
- final String column = propertyMapping.getColumn();
- final Object value = typeHandler.getResult(rs, column);
- metaObject.setValue(property, value);
+ if (typeHandler != null) {
+ final String property = propertyMapping.getProperty();
+ final String column = propertyMapping.getColumn();
+ final Object value = typeHandler.getResult(rs, column);
+ metaObject.setValue(property, value);
+ }
}
}
@@ -136,9 +138,11 @@
final String property = metaObject.findProperty(columnName);
if (property != null) {
final Class propertyType = metaObject.getSetterType(property);
- final TypeHandler typeHandler =
typeHandlerRegistry.getTypeHandler(propertyType);
- final Object value = typeHandler.getResult(rs, columnName);
- metaObject.setValue(property, value);
+ if (typeHandlerRegistry.hasTypeHandler(propertyType)) {
+ final TypeHandler typeHandler =
typeHandlerRegistry.getTypeHandler(propertyType);
+ final Object value = typeHandler.getResult(rs, columnName);
+ metaObject.setValue(property, value);
+ }
}
}
}
@@ -167,9 +171,7 @@
final String columnName = configuration.isUseColumnLabel() ?
rsmd.getColumnLabel(1) : rsmd.getColumnName(1);
final TypeHandler typeHandler =
typeHandlerRegistry.getTypeHandler(resultType);
return typeHandler.getResult(rs,columnName);
- } else if (constructorMappings.size() == 0) {
- return objectFactory.create(resultType);
- } else {
+ } else if (constructorMappings.size() > 0) {
final List<Class> parameterTypes = new ArrayList<Class>();
final List<Object> parameterValues = new ArrayList<Object>();
for(ResultMapping constructorMapping : constructorMappings) {
@@ -181,6 +183,8 @@
parameterValues.add(value);
}
return objectFactory.create(resultType, parameterTypes, parameterValues);
+ } else {
+ return objectFactory.create(resultType);
}
}