Java 我如何使用;按情况订购时……”;在HQL中?

Java 我如何使用;按情况订购时……”;在HQL中?,java,hibernate,hql,Java,Hibernate,Hql,我想像这样执行我的HQL查询: 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

我想像这样执行我的HQL查询:

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);

但它不起作用。我遗漏了什么吗?

您的参数名
f\u name
l\u name
。改变这个

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

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

您不能按的顺序排列
。但是您可以使用参数名
f\u name
l\u name
来放置它。改变这个

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

setParameter("f_name", f_name)
.setParameter("l_name", l_name)
您不能按
的顺序排列
。但是您可以使用
String.format()
将其放置