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 2005/10/03 04:29:31 UTC
svn commit: r293211 -
/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/AutoResultMap.java
Author: cbegin
Date: Sun Oct 2 19:29:28 2005
New Revision: 293211
URL: http://svn.apache.org/viewcvs?rev=293211&view=rev
Log:
Fixed IBATIS-172 implicit mapping fails on nested column aliases
Modified:
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/AutoResultMap.java
Modified: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/AutoResultMap.java
URL: http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/AutoResultMap.java?rev=293211&r1=293210&r2=293211&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/AutoResultMap.java (original)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/mapping/result/AutoResultMap.java Sun Oct 2 19:29:28 2005
@@ -16,6 +16,8 @@
package com.ibatis.sqlmap.engine.mapping.result;
import com.ibatis.common.beans.ClassInfo;
+import com.ibatis.common.beans.Probe;
+import com.ibatis.common.beans.ProbeFactory;
import com.ibatis.common.exception.NestedRuntimeException;
import com.ibatis.sqlmap.client.SqlMapException;
import com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate;
@@ -83,17 +85,26 @@
String columnName = rsmd.getColumnLabel(i + 1);
String upperColumnName = columnName.toUpperCase();
String matchedProp = (String) propertyMap.get(upperColumnName);
- if (matchedProp != null) {
+ Class type = null;
+ if (matchedProp == null) {
+ Probe p = ProbeFactory.getProbe(this.getResultClass());
+ try {
+ type = p.getPropertyTypeForSetter(this.getResultClass(), columnName);
+ } catch (Exception e) {
+ //TODO - add logging to this class?
+ }
+ } else {
+ type = classInfo.getSetterType(matchedProp);
+ }
+ if (type != null || matchedProp != null) {
BasicResultMapping resultMapping = new BasicResultMapping();
- resultMapping.setPropertyName(matchedProp);
+ resultMapping.setPropertyName((matchedProp != null ? matchedProp : columnName));
resultMapping.setColumnName(columnName);
resultMapping.setColumnIndex(i + 1);
- Class type = classInfo.getSetterType(matchedProp);
- resultMapping.setTypeHandler(getDelegate().getTypeHandlerFactory().getTypeHandler(type));
+ resultMapping.setTypeHandler(getDelegate().getTypeHandlerFactory().getTypeHandler(type)); //map SQL to JDBC type
resultMappingList.add(resultMapping);
}
}
-
setResultMappingList(resultMappingList);
} catch (SQLException e) {