1

I want to execute my HQL query like this:

Query queryPayment=sixSession.createQuery("SELECT first_name, last_name FROM Table1 WHERE first_name =:f_name or last_name=:l_name ORDER BY
   CASE WHEN first_name =:f_name THEN 0 ELSE 1 END)
        .setParameter("first_name", f_name)
        .setParameter("last_name", l_name);

but it does not work. am I missing something?

v.ladynev
  • 19,275
  • 8
  • 46
  • 67
Alex
  • 573
  • 1
  • 10
  • 23

1 Answers1

0

Names of your parameters f_name and l_name. Change this

setParameter("first_name", f_name)
.setParameter("last_name", l_name)

to this

setParameter("f_name", f_name)
.setParameter("l_name", l_name)

You can't use named parameters in the ORDER BY. But you can just put it using String.format().

Community
  • 1
  • 1
v.ladynev
  • 19,275
  • 8
  • 46
  • 67