"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