【问题标题】:Add result from two count queries using Hibernate HQL 5使用 Hibernate HQL 5 添加两个计数查询的结果
【发布时间】:2019-09-02 06:24:38
【问题描述】:

请告诉我如何在 HQL 中请求两个计数的总和,以便 Hibernate 可以解析和执行。 Mysql 接受以下内容,但我想避免使用原生 SQL:

select ( (select count(id) from c_cat_map) + (select count(id) from c_acc_map) ) as c;

但是来自 Hibernate 5.3.9 的 HQL 解析器拒绝了这一点:

org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected end of subtree 

这与 2012 年的这篇帖子是同一个问题,但从那时起,hibernate 发生了很大变化,所以请原谅几乎重复的内容:How to select the sum of multiple count() selections in JPQL

How to write a query in hibernate for count(*) and + (addition) 基本相同,但没有 HQL 答案。

我只是想避免两次往返数据库,想在一次旅行中获得总和。如果没有本机查询,也许这是不可能的?提前致谢。

【问题讨论】:

    标签: hibernate hql jpql


    【解决方案1】:

    与许多 SQL 方言一样,HQL 有一个强制性的 FROM 子句,但它没有提供开箱即用的虚拟表或 DUAL 表。但在您的情况下,您可以通过运行以下查询来解决此限制:

    select count(id) + (select count(id) from c_acc_map) as c
    from c_cat_map
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 2019-10-31
      • 2013-07-31
      • 1970-01-01
      相关资源
      最近更新 更多