Search code examples
jakarta-eejpajpql

Java EE / jpa /jpql


I am trying to improve my skills in Java EE

I try to use this Query which I found it Here

SELECT COUNT(e) FROM Object e WHERE TYPE(e) <> Country 

i use it like that

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);

but I get this error

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)

anyone have an idea how to correct that?


Solution

  • The syntax of your typedQuery is not correct. You shouldn't cast a Query in TypedQuery.

    Use

      TypedQuery<FooBar> query = em.createQuery(MyQuery, FooBar.class);
    

    instead

    See http://www.objectdb.com/java/jpa/query/api