我有以下查询:
SELECT ga FROM Keyword ga ORDER by results>0 asc,lastSearch asc
这个查询在mysql工作台中执行时运行并且工作正常,但是当它放在crudrepository类的@query属性中时,它根本就没有编译。
当我删除'>'从查询中签名并按列值排序,它可以正常工作。
除了获取未排序的结果并在我的代码中对其进行排序之外的任何建议?
答案 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语法