Erhan
Erhan

Reputation: 108

Jpa Syntax Error Parsing

    EntityManagerFactory entityManagerFactory = Persistence
            .createEntityManagerFactory("PrimeEclipseLink");
    EntityManager entityManager = entityManagerFactory
            .createEntityManager();
    Query query=entityManager.createQuery("select name from member");
    List<String> memberList=query.getResultList();
    for(String e:memberList){
        System.out.println(e);

I want list name in my database but I get error message like this.`

Tem 14, 2015 9:55:28 AM com.sun.faces.lifecycle.InvokeApplicationPhase  execute
WARNING: #{memberControl.login()}: java.lang.IllegalArgumentException: An exception occurred while creating a query in EntityManager: 
Exception Description: Syntax error parsing [select name from member]. 
[23, 23] An identification variable must be provided for a range variable declaration.
javax.faces.FacesException: #{memberControl.login()}:  java.lang.IllegalArgumentException: An exception occurred while creating a query    in EntityManager: 
Exception Description: Syntax error parsing [select name from member]. 
[23, 23] An identification variable must be provided for a range variable declaration.

Upvotes: 2

Views: 2522

Answers (2)

Neil Stockton
Neil Stockton

Reputation: 11531

Your JPQL query is invalid as the message says. Just change your JPQL query to be

SELECT m.name FROM member m

and then it would work (since that is valid JPQL). The other answer would mean you throw away datastore independence.

Upvotes: 2

Try to use createNativeQuery instead of createQuery in following:

Query query=entityManager.createNativeQuery("select name from member");

Upvotes: 2

Related Questions