Java - Procedimientos Almacenados

 
Vista:

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.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Procedimientos Almacenados

Publicado por Eduardo (144 intervenciones) el 22/09/2010 13:22:36
Hola, ya lo solucioné. El problema que tenía es que los campos que me daban error, en la base de datos figuran como Long y yo los tenía en la clase definidos como BigInteger, entonces al devolver los datos el procedimiento se encontraba con campos que no correspondían y por eso decía que faltaban propiedades.
Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar