"select count(*) from table" return BigDecimal value in Oracle
--------------------------------------------------------------

                 Key: IBATIS-620
                 URL: https://issues.apache.org/jira/browse/IBATIS-620
             Project: iBatis for Java
          Issue Type: Bug
    Affects Versions: 3.0.0
            Reporter: Yuan Tao


User SqlSession.selectOne for the sql "select count(*) from table" defined in 
mapping file should return Integer, but return BigDecimal in Oracle.

The bug seems happen int DefaultResultSetHandler.mapResults method. There are 
codes below:

...
    for (int i = 1, n = rsmd.getColumnCount(); i <= n; i++) {
      boolean useLabel = mappedStatement.getConfiguration().isUseColumnLabel();
      String columnLabel = (useLabel ? rsmd.getColumnLabel(i) : 
rsmd.getColumnName(i));
      columnLabel = columnLabel.toUpperCase();
      String propName = metaResultObject.findProperty(columnLabel);
      colSet.add(columnLabel);
      if (propName != null) {
        propSet.add(propName);

        Class javaType = metaResultObject.getSetterType(propName);              
        // This line will return Object if the resultObject is 
PlatformTypeHolder
                
        TypeHandler typeHandler = typeHandlerRegistry.getTypeHandler(javaType);
        ResultMapping resultMapping = new ResultMapping.Builder(configuration, 
propName, columnLabel, typeHandler)
            .javaType(javaType).build();
        autoMappings.put(propName, resultMapping);
      }
    }
...

Maybe this bug can fixed by adding the code below after "Class javaType = 
metaResultObject.getSetterType(propName);"

        if (javaType.isAssignableFrom(rm.getType()))
                javaType = rm.getType();


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@ibatis.apache.org
For additional commands, e-mail: dev-h...@ibatis.apache.org

Reply via email to