【问题标题】:How to order records by a computed column in Criteria API?如何按 Criteria API 中的计算列对记录进行排序?
【发布时间】:2011-02-03 07:57:22
【问题描述】:

如何使用 Criteria API 编写以下 HQL 查询?

select s.Name, sum(q.PointsObtained), sum(q.TotalPoints)
from Student s join s.Quizzes q
group by s.Name
order by (sum(q.PointsObtained) / sum(q.TotalPoints)) desc

【问题讨论】:

    标签: nhibernate hql criteria-api


    【解决方案1】:

    HQL 或 Critieria API 不支持它。 See 14.12. The group by clause: "group by 子句和 order by 子句都不能包含算术表达式。"我假设您的问题是指 SQL 查询,而不是 HQL 查询。

    【讨论】:

    • 感谢您的回复。我发布的查询是 HQL,它给了我正确的结果。另外,请检查您链接的文档中的第 14.14 节,其中有 ORDER BY 子句中使用的计算列的示例。那么,这可能使用 Criteria API 吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-21
    • 2021-12-12
    • 2013-11-27
    • 2022-01-13
    相关资源
    最近更新 更多