表达式的休眠顺序并不接受'>'

时间:2015-02-05 14:09:18

标签: mysql hibernate

我有以下查询:

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

这个查询在mysql工作台中执行时运行并且工作正常,但是当它放在crudrepository类的@query属性中时,它根本就没有编译。

当我删除'>'从查询中签名并按列值排序,它可以正常工作。

除了获取未排序的结果并在我的代码中对其进行排序之外的任何建议?

1 个答案:

答案 0 :(得分:1)

不完全确定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语法