2012-05-29 9 views
10

Ich möchte meine HQL Abfrage wie folgt auszuführen:Wie verwende ich Order by 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); 

aber es erkennt nicht +order+
ich den Auftrag durch Klausel müssen.

+2

scheint, wie Sie einen Raum fehlen vor „desc“, shold sein „desc“ – oers

Antwort

18

erscheint haben Sie die „order by“ setzen in der HSQL Abfrage, aber mit einem Raum:

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

Nein, es gibt einen Fehler zurück: – AFF

+0

Fehler ist: org.hibernate.hql.ast.QuerySyntaxException: unerwartetes Token: Reihenfolge in der Nähe von Zeile 1 – AFF

+0

Ich habe diese Abfrage versucht: QueryPayment = sixSession.createQuery ("aus Zahlung wo Vcode =: p_Vcode oder (Installment_Vcode =: installmentVcode und payment_date>: pdate) order by vcode. "+ Order +" desc ") und der Fehler lautet: Fehler beim Aufrufen der Aktion mit der Hibernate Core Session/Transaktionsinjektion org.hibernate.hql.ast.QuerySyntaxException: Unerwartetes Token: Befehl in der Nähe von Zeile 1, Spalte 127 [aus Information.Payment wobei vcode =: p_Vcode oder (Installment_Vcode =: installmentVcode und payment_date>: pdate) nach vcode order by vcode desc ] bei org.hibernate.hql.ast.QuerySyntaxException.convert (QuerySyntaxExc – AFF