休眠按表达式排序不接受'>'

hibernate order by expression doesn't accept '>'

我有以下查询:

SELECT ga FROM Keyword ga ORDER by results>0 asc,lastSearch asc

此查询在 mysql workbench 中执行时运行并完美运行,但当将 @query 属性放入 crudrepository class 时,它根本无法编译。

当我从查询中删除“>”符号并按列值排序时,它工作正常。

除了获得未排序的结果并在我的代码中对其进行排序之外,还有什么建议吗?

不完全确定 ORDER BY results > 0 是什么意思,如果这是条件,我们可以将其转换为:

SELECT ga 
FROM Keyword ga 
WHERE ga.results > 0
ORDER BY ga.results asc, ga.lastSearch asc

如果我们需要转换为布尔值,我们可以这样做:

SELECT ga 
FROM Keyword ga 
ORDER BY ga.results asc
ORDER BY CASE WHEN ga.results > 0 THEN 0 ELSE 1 END asc
 , ga.lastSearch asc

HQL 根本不适合 100% 底层数据库引擎 SQL 语法