У меня есть не-сущность классаГраф объекты в нескольких таблицах
public class CountryStatistics {
public CountryStatistics(Long numTowns, Long numVillages) {
...
}
}
Для данной страны я хочу построить объект статистики.
Страна, деревня и город являются сущностями, поэтому я пробовал вещи в соответствии с приведенным ниже кодом.
String queryString =
"SELECT NEW mypackage.CountryStatistics(count(t), count(v))
FROM Town t, Village v WHERE t.country = :country AND v.country = :country"
TypedQuery<CountryStatistics> query =
em.createQuery(queryString ,CountryStatistics.class).setParameter("country", country);
query.getSingleResult()
Вопрос: Каков правильный способ подсчета некоторых объектов в разных таблицах в одном запросе?
С вышеуказанным запросом я заканчиваю путь высокими числами, если я размещаю отчетливо, как показано ниже, число городов будет правильным.
"SELECT NEW mypackage.CountryStatistics(count(distinct t), count(v))
FROM Town t, Village v WHERE t.country = :country AND v.country = :country"
Но если я устанавливаю его для сел и я получаю:
java.sql.SQLSyntaxErrorException: Multiple DISTINCT aggregates are not supported at this time.
Вы не говорите, что проблема в. –
Ах, правда, добавлено еще одно объяснение –
Похоже, ваша база данных не поддерживает несколько разных агрегатов. Какая база данных? PostgreSQL поддерживает это просто отлично. –