2012-06-22 5 views
7

En mi proyecto GAE Empecé con JPA 1.0 y el código funcionaba muy bien:cláusula FROM de la consulta ha XXX clase, pero ningún alias

Query query = em.createQuery("SELECT FROM MyImage " + 
           "WHERE m_Email = :email " + 
           "And m_Password = :password ", MyImage.class); 
    query.setParameter("email", email); 
    query.setParameter("password", password); 

Pero ahora que trabajar con APP 2.0 me sale:

FROM clause of query has class util.MyImage but no alias 
org.datanucleus.store.query.QueryCompilerSyntaxException: FROM clause of query has class util.MyImage but no alias 
at org.datanucleus.query.compiler.JavaQueryCompiler.compileFrom(JavaQueryCompiler.java:233) 
at org.datanucleus.query.compiler.JPQLCompiler.compile(JPQLCompiler.java:79) 
at org.datanucleus.store.query.AbstractJPQLQuery.compileInternal(AbstractJPQLQuery.java:269) 
at org.datanucleus.store.query.Query.setImplicitParameter(Query.java:825) 
at org.datanucleus.api.jpa.JPAQuery.setParameter(JPAQuery.java:458) 
at org.datanucleus.api.jpa.JPAQuery.setParameter(JPAQuery.java:57) 
at dataBase.DataBase.getMyImageFromDB(DataBase.java:173) 

Me las arreglé para hacer que funcione con CriteriaQuery pero el código no es legible y un poco complicado.

¿Alguna idea de cómo solucionar esta excepción?

Respuesta

12

creo que es necesario definir un alias para su clase como esta:

Query query = em.createQuery("SELECT i FROM MyImage i " + 
          "WHERE i.m_Email = :email " + 
          "And i.m_Password = :password ", MyImage.class); 
+0

Tan simple como eso ... eso es :) embarazoso. Gracias – Rami

Cuestiones relacionadas