CAST en HQL

Hoy vi una pregunta en un foro (bueno, era un grupo de google) de un HQL que utiliza la función CAST:



String hql = "SELECT CAST(tp.identificacion) AS decimal) from Tperson tp . . . ."



Al ejecutar la consulta se muestra el error de "No data type for node"


Hibernate también maneja el concepto de CAST (siempre y cuando el motor de base de datos soporte esta función).
El segundo parámetro del CAST debe ser un "Hibernate Type"

Los "Hibernate Types" son los tipos de datos que se configuran en los archivos .hbm


En el ejemplo deberíamos reemplazar por el equivalente al decimal, que es big_decimal.



String hql = "SELECT CAST(tp.identificacion) AS big_decimal) from Tperson tp . . . ."



Hibernate ejecutará por debajo un cast(identificacion as number(19,2))

Me doy cuenta que hibernate maneja muchas funciones de SQL, tiene gran soporte para las consultas HQL. Es bueno insistir en esta librería y no rendirse fácilmente buscando utilizar sentencias SQL

Comentarios