Hi all,
Since now, I only execute simple querys but how can translate this query from SQL to HQL?
SQL
Code:
SELECT
*
FROM
(select
ROWNUM AS NUMERO,
CI.RECAB_AREA,
CI.RECAB_CLAVE,
CI.RECAB_DESCORTA,
CI.RECAB_DESLARGA,
CI.RECAB_DISPONIBLEDESDE,
CI.RECAB_DISPONIBLEHASTA,
CI.RECAB_EMGRABA,
CI.RECAB_EMMODIFICA,
CI.RECAB_FEGRABA,
CI.RECAB_FEMODIFICA,
CI.RECAB_IDREPORTCABECERA,
CI.RECAB_NOMBERUTA
from REPORTCABECERA ci
where (ci.RECAB_DISPONIBLEHASTA >= SYSDATE
or ci.RECAB_DISPONIBLEHASTA is null)
order by ci.RECAB_AREA,
ci.RECAB_FEGRABA,
ci.RECAB_CLAVE) RC
WHERE RC.NUMERO BETWEEN (20*(1-1))+1 AND 20 * 1
My HQLCode:
"SELECT "
+ " RC.area, "
+ " RC.nombre, "
+ " RC.descripcionCorta, "
+ " RC.descripcionLarga, "
+ " RC.fechaIni, "
+ " RC.fechaFin, "
+ " RC.empleadoGrabacion, "
+ " RC.empleadoModificacion, "
+ " RC.fechaGrabacion, "
+ " RC.fechaModificacion, "
+ " RC.id, "
+ " RC.nombreRuta "
+ "FROM "
+ " (select "
+ " ROWNUM AS NUMERO, "
+ " ci.area, "
+ " ci.nombre, "
+ " ci.descripcionCorta, "
+ " ci.descripcionLarga, "
+ " ci.fechaIni, "
+ " ci.fechaFin, "
+ " ci.empleadoGrabacion, "
+ " ci.empleadoModificacion, "
+ " ci.fechaGrabacion, "
+ " ci.fechaModificacion, "
+ " ci.id, "
+ " ci.nombreRuta "
+ " from CabeceraInforme ci "
+ " where (ci.fechaFin >= SYSDATE "
+ " or ci.FechaFin is null) "
+ " order by ci.area, "
+ " ci.fechaGrabacion, "
+ " ci.nombre) RC "
+ "WHERE RC.NUMERO BETWEEN (?1*(?2-1))+1 AND ?1 * ?2 ",numeroPaginas,paginaActual
The errorCode:
org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ( near line 1, column 425 [SELECT RC.area, RC.nombre, RC.descripcionCorta, RC.descripcionLarga, RC.fechaIni, RC.fechaFin, RC.empleadoGrabacion, RC.empleadoModificacion, RC.fechaGrabacion, RC.fechaModificacion, RC.id, RC.nombreRuta FROM (select ROWNUM AS NUMERO, ci.area, ci.nombre, ci.descripcionCorta, ci.descripcionLarga, ci.fechaIni, ci.fechaFin, ci.empleadoGrabacion, ci.empleadoModificacion, ci.fechaGrabacion, ci.fechaModificacion, ci.id, ci.nombreRuta from com.uw.diode.entity.CabeceraInforme ci where (ci.fechaFin >= SYSDATE or ci.FechaFin is null) order by ci.area, ci.fechaGrabacion, ci.nombre) RC WHERE RC.NUMERO BETWEEN (?1*(?2-1))+1 AND ?1 * ?2 ]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: ( near line 1, column 425 [SELECT RC.area, RC.nombre, RC.descripcionCorta, RC.descripcionLarga, RC.fechaIni, RC.fechaFin, RC.empleadoGrabacion, RC.empleadoModificacion, RC.fechaGrabacion, RC.fechaModificacion, RC.id, RC.nombreRuta FROM (select ROWNUM AS NUMERO, ci.area, ci.nombre, ci.descripcionCorta, ci.descripcionLarga, ci.fechaIni, ci.fechaFin, ci.empleadoGrabacion, ci.empleadoModificacion, ci.fechaGrabacion, ci.fechaModificacion, ci.id, ci.nombreRuta from com.uw.diode.entity.CabeceraInforme ci where (ci.fechaFin >= SYSDATE or ci.FechaFin is null) order by ci.area, ci.fechaGrabacion, ci.nombre) RC WHERE RC.NUMERO BETWEEN (?1*(?2-1))+1 AND ?1 * ?2 ]
I can't find a good HQL manual. Could you suggest someone to me?