2012-05-29 31 views
10

quiero para ejecutar mi consulta HQL como esto:¿Cómo uso ordenar en HQL?

Query queryPayment=sixSession.createQuery("from Payment where vcode=:p_Vcode or (Installment_Vcode=:installmentVcode and payment_date>:pdate) order byvcode."+order +"desc") 
     .setParameter("p_Vcode", p_Vcode) 
     .setParameter("installmentVcode", installmentVcode) 
     .setParameter("pdate", pdate); 

pero no reconoce +order+
necesito la cláusula ORDER BY.

+2

parece que se echa en falta un espacio antes "desc", no debe dejar ser "desc" – oers

Respuesta

18

parece que tiene que poner el "orden por" en la consulta HSQL, pero con un espacio:

"from Payment where vcode=:p_Vcode or (Installment_Vcode=:installmentVcode and 
payment_date>:pdate) order by vcode desc" 
+0

No, devuelve un error: – AFF

+0

error es: org.hibernate.hql.ast.QuerySyntaxException: token inesperado: orden cerca de la línea 1 – AFF

+0

He intentado esta consulta: Query queryPayment = sixSession.createQuery ("desde Payment donde vcode =: p_Vcode or (Installment_Vcode =: installmentVcode y fecha_de_pago>: pdate) orden por vcode. "+ Orden +" desc ") y el error es: Error invocando Acción usando Hibernate Core Session/Transaction injection org.hibernate.hql.ast.QuerySyntaxException: token inesperado: orden cerca de la línea 1, columna 127 [de la información.Pago donde vcode =: p_Vcode o (Installment_Vcode =: installmentVcode y fecha_de_pago>: pdate) ordena por orden de vcode por vcode desc ] en org.hibernate.hql.ast.QuerySyntaxException.convert (QuerySyntaxExc – AFF