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
  • 18,125
  • 7
  • 41
  • 62
Alex
  • 447
  • 1
  • 9
  • 22

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
  • 18,125
  • 7
  • 41
  • 62