0
Я пытаюсь улучшить свои навыки в Java EEJava EE/JPA/jpql
Я пытаюсь использовать этот запрос, который я нашел, что это Here
SELECT COUNT(e) FROM Object e WHERE TYPE(e) <> Country
я использовать его как то
TypedQuery<String> query=(TypedQuery<String>) manager.createQuery
("SELECT COUNT(e) FROM Object e WHERE TYPE(e) <> Country");
List list=query.getResultList();
for(Object entity : list)
System.out.println(entity);
, но я получаю эту ошибку
Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: FROM near line 1, column 17 [SELECT COUNT(e) FROM Object e WHERE TYPE(e) <> Country]
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1374)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1315)
at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:280)
У кого-нибудь есть идея, как исправить это?
спасибо Я не думаю, что это является источником ошибок, поскольку он работает с этим запросом «SELECT COUNT (е) от страны e " Я думаю, что ошибка вызвана предложением« Object » –
Ofc, потому что jpa не понимает, что здесь делает объект, поскольку он не является объявленным объектом. Однако, если этот тип запроса возможен, я полагаю, он может исправить. Plz сообщите мне результат ваших исследований. – Gab
привет, вы правы. Jpa не понимает тип Object. Сначала я думал, что этот запрос вернет количество явлений, которые у меня есть в моей базе данных (и это было неправильно), и он работает, когда я изменяю Query следующим образом: «ВЫБЕРИТЕ COUNT (u) ОТ пользователя u ГДЕ ТИП (u) <> Клиент». и возвращает число администраторов есть в моей базе данных Client и Администраторы два типа наследуется от лица пользователя Спасибо за взаимодействие с темой –