Procedimientos Almacenados
Publicado por Eduardo (144 intervenciones) el 22/09/2010 13:02:54
Hola al ejecutar un procedimiento almacenado con ibatis me da un error.
El código es el siguiente:
<sqlMap>
<typeAlias alias="horarios" type="imprimirRutas.dao.Horarios"/>
<parameterMap id="parametrosResult" class="map">
<parameter property="origen" jdbcType="BIGINT" javaType="java.math.BigDecimal" mode="IN"/>
<parameter property="destino" jdbcType="BIGINT" javaType="java.math.BigDecimal" mode="IN"/>
</parameterMap>
<procedure id="getHorariosOrigenDestino" resultClass="horarios" parameterMap="parametrosResult">
{call HoraPorOrigenDestino (?, ?)}
</procedure>
</sqlMap>
Si no le pongo que devuelva nada, no me da ningún error. Cuando le digo que me devuelva la clase horarios, me da el siguiente error.
The error occurred while applying a result map.
--- Check the getHorariosOrigenDestino-AutoResultMap.
--- Check the result mapping for the 'idHoraSalida' property.
--- Cause: com.ibatis.sqlmap.client.SqlMapException: No type handler could be found to map the property 'idHoraSalida' to the column 'idHoraSalida'. One or both of the types, or the combination of types is not supported.
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:204)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:298)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
... 4 more
Caused by: com.ibatis.sqlmap.client.SqlMapException: No type handler could be found to map the property 'idHoraSalida' to the column 'idHoraSalida'. One or both of the types, or the combination of types is not supported.
at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getPrimitiveResultMappingValue(ResultMap.java:622)
at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getResults(ResultMap.java:345)
at com.ibatis.sqlmap.engine.mapping.result.AutoResultMap.getResults(AutoResultMap.java:47)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:384)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:282)
at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:39)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
... 10 more
idHoraSalida es un atributo de la clase Horarios que corresponde con uno de los campos que se obtiene de ejecutar el procedimiento. Alguien me puede explicar por qué me está dando este error, cuando he ejecutado consultas en ibatis con un parámetro de entrada y como salida tenía la clase Horarios y no me daba ningún error.
Espero vuestra ayuda, un saludo.
El código es el siguiente:
<sqlMap>
<typeAlias alias="horarios" type="imprimirRutas.dao.Horarios"/>
<parameterMap id="parametrosResult" class="map">
<parameter property="origen" jdbcType="BIGINT" javaType="java.math.BigDecimal" mode="IN"/>
<parameter property="destino" jdbcType="BIGINT" javaType="java.math.BigDecimal" mode="IN"/>
</parameterMap>
<procedure id="getHorariosOrigenDestino" resultClass="horarios" parameterMap="parametrosResult">
{call HoraPorOrigenDestino (?, ?)}
</procedure>
</sqlMap>
Si no le pongo que devuelva nada, no me da ningún error. Cuando le digo que me devuelva la clase horarios, me da el siguiente error.
The error occurred while applying a result map.
--- Check the getHorariosOrigenDestino-AutoResultMap.
--- Check the result mapping for the 'idHoraSalida' property.
--- Cause: com.ibatis.sqlmap.client.SqlMapException: No type handler could be found to map the property 'idHoraSalida' to the column 'idHoraSalida'. One or both of the types, or the combination of types is not supported.
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:204)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForList(MappedStatement.java:139)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:567)
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(SqlMapExecutorDelegate.java:541)
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(SqlMapSessionImpl.java:118)
at org.springframework.orm.ibatis.SqlMapClientTemplate$3.doInSqlMapClient(SqlMapClientTemplate.java:298)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:209)
... 4 more
Caused by: com.ibatis.sqlmap.client.SqlMapException: No type handler could be found to map the property 'idHoraSalida' to the column 'idHoraSalida'. One or both of the types, or the combination of types is not supported.
at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getPrimitiveResultMappingValue(ResultMap.java:622)
at com.ibatis.sqlmap.engine.mapping.result.ResultMap.getResults(ResultMap.java:345)
at com.ibatis.sqlmap.engine.mapping.result.AutoResultMap.getResults(AutoResultMap.java:47)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:384)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQueryProcedure(SqlExecutor.java:282)
at com.ibatis.sqlmap.engine.mapping.statement.ProcedureStatement.sqlExecuteQuery(ProcedureStatement.java:39)
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryWithCallback(MappedStatement.java:189)
... 10 more
idHoraSalida es un atributo de la clase Horarios que corresponde con uno de los campos que se obtiene de ejecutar el procedimiento. Alguien me puede explicar por qué me está dando este error, cuando he ejecutado consultas en ibatis con un parámetro de entrada y como salida tenía la clase Horarios y no me daba ningún error.
Espero vuestra ayuda, un saludo.
Valora esta pregunta


0