2012-05-29 13 views
10

Voglio eseguire il mio interrogazione HQL in questo modo:Come utilizzare l'ordine in 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); 

ma non riconosce +order+
Ho bisogno la clausola ORDER BY.

+2

sembra vi manca uno spazio prima "disc", shold essere "disc" – oers

risposta

18

appare bisogna mettere "l'ordine dal" nella query HSQL, ma con uno spazio:

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

No, restituisce un errore: l'errore – AFF

+0

è: org.hibernate.hql.ast.QuerySyntaxException: token imprevisto: ordine vicino alla riga 1 – AFF

+0

Ho provato questa query: Query queryPayment = sixSession.createQuery ("da Payment where vcode =: p_Vcode o (Installment_Vcode =: installmentVcode e payment_date>: pdate) ordina per vcode. "+ Order +" desc ") e l'errore è: Errore durante il richiamo dell'azione utilizzando Hibernate Core Session/Transazione iniezione org.hibernate.hql.ast.QuerySyntaxException: token imprevisto: ordine vicino alla riga 1, colonna 127 [da information.Payment dove vcode =: p_Vcode o (Installment_Vcode =: installmentVcode e payment_date>: pdate) ordina per vcode ordina per vcode desc ] all'indirizzo org.hibernate.hql.ast.QuerySyntaxException.convert (QuerySyntaxExc – AFF