【问题标题】:Nested query with HQL / Hibernate使用 HQL / Hibernate 的嵌套查询
【发布时间】:2013-09-10 21:33:23
【问题描述】:

根据我的阅读,在某些情况下,无法在 HQL / Hibernate 中嵌套子查询。

假设我有一个带有价格的文章表,属于一个组。我们想将它们全部添加,但每组文章最多只能添加一个限制。实际上,该表是非规范化的,因此我们在文章表中已经有了该组的最大数量。

所以 SQL 就这么简单:

SELECT SUM(case when max_amount is null then price
when price<max_amount then price
else max_amount end)
FROM
(SELECT
SUM(price) as price, group_id, max_amount
FROM articles
GROUP BY group_id, max_amount
)

显然,我的数据模型更复杂,但这是我的主要问题。

我想知道如何在 HQL 中重写它,因为我猜我不允许将一个子查询嵌套到另一个子查询中。

谢谢大家。

【问题讨论】:

    标签: sql hibernate nested hql


    【解决方案1】:

    我不愿意以这种方式这样做,但经过一些研究后,我只能考虑按原样使用 SQL 查询。

    类似:

    String sQuery = "SELECT SUM(case when max_amount is null then price ...
    final org.hibernate.SQLQuery query = session.createSQLQuery(sQuery);
    List results = query.list();
    

    我无法考虑 Hibernate 使用 HQL 处理嵌套查询。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-21
      相关资源
      最近更新 更多