Получение одного значения с использованием JPA? - PullRequest
11 голосов
/ 01 декабря 2011

Есть ли какая-либо поддержка со стороны JPA для сопоставления отдельных значений скалярным типам данных?Например, чтобы отобразить NUM в следующем запросе

SELECT COUNT(*) AS NUM FROM EMPLOYEES

в некоторую переменную

int numerOfEmployees

или мне нужно использовать JDBC для таких случаев использования?

1 Ответ

16 голосов
/ 01 декабря 2011

Да, вы можете вернуть скалярные типы из запросов JPQL

long num = ((Number)em.createQuery("select count(e) from Employee e")
                    .getSingleResult()).longValue();

, а также из собственных запросов SQL:

long num = ((Number)em.createNativeQuery("select count(*) from Employees")
                    .getSingleResult()).longValue();

Обратите внимание, что в некоторых случаях тип результата может зависетьбаза данных, т.е. это может быть что-то вроде BigDecimal.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...