Ответ 1
Изменить код понравится;
int count = ((Number)em.createNamedQuery("Charakteristika.findAllCount").getSingleResult()).intValue();
System.out.println(count);
как получить счет с namedquery, не получив весь список (это увеличит производительность, я думаю). Это именованный запрос, который не работает:
@NamedQuery(name = "Charakteristika.findAllCount", query = "SELECT COUNT(c) FROM Charakteristika c")
Выполнение этого:
System.out.println("a");
System.out.println(em.createNamedQuery("Charakteristika.findAllCount", Integer.class).getSingleResult().intValue());
System.out.println("b");
Вывод:
a
Хотя этот запрос работает:
@NamedQuery(name = "Charakteristika.findAll", query = "SELECT c FROM Charakteristika c")
Выполнение этого:
System.out.println("a");
System.out.println(em.createNamedQuery("Charakteristika.findAll", Charakteristika.class).getResultList().size());
System.out.println("b");
Вывод:
a
11111
b
Изменить код понравится;
int count = ((Number)em.createNamedQuery("Charakteristika.findAllCount").getSingleResult()).intValue();
System.out.println(count);
Также вы можете попробовать: используйте интерфейс TypeQuery с длинным значением. В следующем примере запрос "PosicionHistorialDia.findNumberSpeeding" является числом jpa.
@Override
public Long findCount(String eventCode) {
TypedQuery<Long> query = em.createNamedQuery(
"PosicionHistorialDia.findNumberSpeeding",
Long.class);
query.setParameter("event", eventCode);
return query.getSingleResult();
}
Try:
System.out.println("a");
System.out.println(em.createNamedQuery("Charakteristika.findAllCount").getSingleResult());
System.out.println("b");
И посмотрите, выводит ли он что-нибудь для вас.
В противном случае
попробуйте getResultList
вместо getSingleResult
; в противном случае то же самое.
попробуйте createQuery("SELECT COUNT(c) FROM Charakteristika c").getSingleResult
и getResultList
Исследуйте различия в объявлении запросов; как указывает JB, запросы одинаковы. Поэтому попробуйте оба имени с разными формами выше.
Изучите, как вы строите; это часть развернутого приложения? автономные?
Что-то должно дать где-нибудь.