Добавить результат из двух запросов на подсчет, используя Hibernate HQL 5 - PullRequest
1 голос
/ 11 апреля 2019

Скажите, пожалуйста, как запросить сумму в два счета в HQL, чтобы Hibernate мог анализировать и выполнять. Mysql принимает следующее, но я бы хотел избежать нативного SQL:

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

Но парсер HQL из Hibernate 5.3.9 отклоняет это с помощью:

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

Это тот же вопрос, что и в этом посте 2012 года, но с тех пор hibernate сильно изменился, поэтому простите за почти дубликат: Как выбрать сумму множественных выборов count () в JPQL

По сути то же самое, что и Как написать запрос в hibernate для count (*) и + (сложение) , но ответа HQL нет.

Я просто пытаюсь избежать двух поездок в БД, хотел бы получить сумму за одну поездку. Может быть, это невозможно без нативного запроса? Заранее спасибо.

1 Ответ

1 голос
/ 12 апреля 2019

Как и многие диалекты SQL, в HQL есть обязательное предложение FROM, но он не предлагает пустую таблицу или таблицу DUAL из коробки. Но в вашем случае вы можете обойти это ограничение, выполнив следующий запрос:

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