如何在Hibernate/HQL/JPQL中按客户表达式排序结果

Vla*_*din 1 hibernate hql sql-order-by jpql

我有持久性实体Cats(id,name).我想查询所有猫(使用HQL/JPQL),名为'Tom'的猫在顶部,即按自定义表达式名称='Tom'排序.

在Oracle中,我可以使用

ORDER BY CASE name WHEN 'Tom' THEN 0 ELSE 1 END.
Run Code Online (Sandbox Code Playgroud)

怎么做Hibernate?

ben*_*y23 6

我刚刚编写了一个测试类,以下内容适用于Hibernate/JPA 3.6.1:

SELECT o 
  FROM Cat o 
 ORDER BY CASE o.name WHEN 'Tom' THEN 0 ELSE 1 END
Run Code Online (Sandbox Code Playgroud)