Язык запросов JPA поддерживает агрегатные функции в предложении SELECT, такие как AVG, COUNT, MAX, MIN, SUM, и поддерживает несколько select_expressions в предложении SELECT, и в этом случае результат равен List
из Object
массив (Object[]
). Из спецификации JPA:
4.8.1 Тип результата предложения SELECT
...
Тип результата SELECT
предложение определяется результатом
типы select_expressions
содержится в нем. Когда несколько
select_expressions используются в
Предложение SELECT, результат запроса
имеет тип Object[]
, и
элементы в этом результате соответствуют в
заказ на заказ их
спецификация в предложении SELECT
и в типе к типу результата
каждый из select_expressions .
Другими словами, поддерживается тот тип запроса, который вы упомянули в комментарии (а поскольку вы не указали свою сущность, я буду основывать свой ответ на вашем примере), проблем нет. Вот пример кода:
String qlString = "SELECT AVG(x.price), SUM(x.stocks) FROM Magazine x WHERE ...";
Query q = em.createQuery(qlString);
Object[] results = (Object[]) q.getSingleResult();
for (Object object : results) {
System.out.println(object);
}
Ссылки
- JPA 1.0 Технические характеристики
- 4.8.1 Тип результата предложения SELECT
- 4.8.4 Агрегатные функции в предложении SELECT