Author: cbegin Date: Fri Feb 12 14:08:10 2010 New Revision: 909414 URL: http://svn.apache.org/viewvc?rev=909414&view=rev Log: Fixed IBATIS-741 STRUCT is not supported and callable statements does not support structured sql types as out parameters.
Modified: ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.doc ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java Modified: ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.doc URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.doc?rev=909414&r1=909413&r2=909414&view=diff ============================================================================== Binary files - no diff available. Modified: ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/doc/en/iBATIS-3-User-Guide.pdf?rev=909414&r1=909413&r2=909414&view=diff ============================================================================== Binary files - no diff available. Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java?rev=909414&r1=909413&r2=909414&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/SqlSourceBuilder.java Fri Feb 12 14:08:10 2010 @@ -79,6 +79,8 @@ builder.resultMapId(value); } else if ("typeHandler".equals(name)) { builder.typeHandler((TypeHandler) resolveInstance(value)); + } else if ("jdbcTypeName".equals(name)) { + builder.jdbcTypeName(value); } } else { throw new BuilderException("Improper inline parameter map format. Should be: #{propName,attr1=val1,attr2=val2}"); Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java?rev=909414&r1=909413&r2=909414&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/CallableStatementHandler.java Fri Feb 12 14:08:10 2010 @@ -74,7 +74,11 @@ if (parameterMapping.getNumericScale() != null && (parameterMapping.getJdbcType() == JdbcType.NUMERIC || parameterMapping.getJdbcType() == JdbcType.DECIMAL)) { cs.registerOutParameter(i + 1, parameterMapping.getJdbcType().TYPE_CODE, parameterMapping.getNumericScale()); } else { - cs.registerOutParameter(i + 1, parameterMapping.getJdbcType().TYPE_CODE); + if (parameterMapping.getJdbcTypeName() == null) { + cs.registerOutParameter(i + 1, parameterMapping.getJdbcType().TYPE_CODE); + } else { + cs.registerOutParameter(i + 1, parameterMapping.getJdbcType().TYPE_CODE, parameterMapping.getJdbcTypeName()); + } } } } Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java?rev=909414&r1=909413&r2=909414&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/ParameterMapping.java Fri Feb 12 14:08:10 2010 @@ -16,6 +16,7 @@ private Integer numericScale; private TypeHandler typeHandler; private String resultMapId; + private String jdbcTypeName; private ParameterMapping() { } @@ -67,6 +68,11 @@ return this; } + public Builder jdbcTypeName(String jdbcTypeName) { + parameterMapping.jdbcTypeName = jdbcTypeName; + return this; + } + public ParameterMapping build() { resolveTypeHandler(); return parameterMapping; @@ -113,4 +119,8 @@ return resultMapId; } + public String getJdbcTypeName() { + return jdbcTypeName; + } + } Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java?rev=909414&r1=909413&r2=909414&view=diff ============================================================================== --- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java (original) +++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/JdbcType.java Fri Feb 12 14:08:10 2010 @@ -31,9 +31,10 @@ BOOLEAN(Types.BOOLEAN), CURSOR(-10), // Oracle UNDEFINED(Integer.MIN_VALUE + 1000), - NVARCHAR(-9), - NCHAR(-15), - NCLOB(2011); + NVARCHAR(-9), // JDK6 + NCHAR(-15), // JDK6 + NCLOB(2011), // JDK6 + STRUCT(Types.STRUCT); public final int TYPE_CODE; private static Map<Integer,JdbcType> codeLookup = new HashMap<Integer,JdbcType>();