Author: cbegin
Date: Tue Sep 29 05:43:58 2009
New Revision: 819833
URL: http://svn.apache.org/viewvc?rev=819833&view=rev
Log:
Support single column mappings in primitive results
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
Modified:
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
URL:
http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java?rev=819833&r1=819832&r2=819833&view=diff
==============================================================================
---
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
(original)
+++
ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/resultset/DefaultResultSetHandler.java
Tue Sep 29 05:43:58 2009
@@ -288,7 +288,7 @@
final Class resultType = resultMap.getType();
final List<ResultMapping> constructorMappings =
resultMap.getConstructorResultMappings();
if (PlatformType.isPlatformType(resultType)) {
- return createPrimitiveResultObject(rs, resultType);
+ return createPrimitiveResultObject(rs, resultMap);
} else if (constructorMappings.size() > 0) {
return createParameterizedResultObject(rs, resultType,
constructorMappings);
} else {
@@ -312,9 +312,17 @@
return foundValues ? objectFactory.create(resultType, parameterTypes,
parameterValues) : null;
}
- private Object createPrimitiveResultObject(ResultSet rs, Class resultType)
throws SQLException {
- final ResultSetMetaData rsmd = rs.getMetaData();
- final String columnName = configuration.isUseColumnLabel() ?
rsmd.getColumnLabel(1) : rsmd.getColumnName(1);
+ private Object createPrimitiveResultObject(ResultSet rs, ResultMap
resultMap) throws SQLException {
+ final Class resultType = resultMap.getType();
+ final String columnName;
+ if (resultMap.getResultMappings().size() > 0) {
+ final List<ResultMapping> resultMappingList =
resultMap.getResultMappings();
+ final ResultMapping mapping = resultMappingList.get(0);
+ columnName = mapping.getColumn();
+ } else {
+ final ResultSetMetaData rsmd = rs.getMetaData();
+ columnName = configuration.isUseColumnLabel() ? rsmd.getColumnLabel(1) :
rsmd.getColumnName(1);
+ }
final TypeHandler typeHandler =
typeHandlerRegistry.getTypeHandler(resultType);
return typeHandler.getResult(rs, columnName);
}