休眠按表达式排序不接受'>'
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 语法
我有以下查询:
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 语法