使用 Hibernate HQL 5 添加来自两个计数查询的结果
Add result from two count queries using Hibernate HQL 5
请告诉我如何在 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 年 post 相同,但从那时起休眠发生了很大变化,因此请原谅近乎重复的问题:How to select the sum of multiple count() selections in JPQL
与How to write a query in hibernate for count(*) and + (addition)基本相同,但没有HQL答案。
我只是想避免两次往返数据库,想在一次旅行中获得总和。如果没有本机查询,也许这是不可能的?提前致谢。
像许多 SQL 方言一样,HQL 有一个强制性的 FROM
子句,但它不提供开箱即用的虚拟或 DUAL
table。但在您的情况下,您可以通过 运行 以下查询来解决此限制:
select count(id) + (select count(id) from c_acc_map) as c
from c_cat_map
请告诉我如何在 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 年 post 相同,但从那时起休眠发生了很大变化,因此请原谅近乎重复的问题:How to select the sum of multiple count() selections in JPQL
与How to write a query in hibernate for count(*) and + (addition)基本相同,但没有HQL答案。
我只是想避免两次往返数据库,想在一次旅行中获得总和。如果没有本机查询,也许这是不可能的?提前致谢。
像许多 SQL 方言一样,HQL 有一个强制性的 FROM
子句,但它不提供开箱即用的虚拟或 DUAL
table。但在您的情况下,您可以通过 运行 以下查询来解决此限制:
select count(id) + (select count(id) from c_acc_map) as c
from c_cat_map