2009-10-26 5 views
-1

s'il vous plaît convertir le sql en hqllangage de requête Mise en veille prolongée

Déclaration SQL: s nom d'utilisateur élu de useraccout où email = "valeur du paramètre"

Plus Description:

tout en exécutant le code j'obtiens cette erreur:

public List dispUser(String email){ 
    Query query = em.createQuery("SELECT u.username FROM Useraccout u WHERE u.email=:email)"); 
    query.setParameter(email, email); 
    List search = query.getResultList(); 
    return search; 
} 

pendant l'exécution du code que je obtiens l'erreur suivante

java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: 
Useraccout is not mapped [SELECT u.username FROM Useraccout u WHERE u.email=:email1)] 
     at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:624) 
     at org.hibernate.ejb.AbstractEntityManagerImpl.createQuery(AbstractEntityManagerImpl.java:96) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
+0

Quel est votre fichier de correspondance? – ollifant

+1

-1 pour le mauvais sujet - veuillez lire la documentation d'Hibernate avant de l'utiliser. Un bon point de départ serait http://hibernate.org/152.html. Astuce: vous devez mapper les classes dans la configuration Hibernate avant de les utiliser. –

+0

"useraccout", vous êtes sûr de ne pas avoir fait une faute de frappe? – wds

Répondre

1

Il semble que vous n'avez pas cartographié une classe nommée Useraccount. Je pense que ce soit:

  • Vous avez associé une classe nommée Useraccount et avez tapé le nom de cette classe de manière incorrecte dans la requête
  • Vous n'avez pas cartographié toutes les classes. Cela indique que vous ne comprenez pas les bases d'Hibernate. En bref, chaque classe mappée à une table de base de données doit définir ce mappage à l'aide d'un fichier XML ou d'annotations.
Questions connexes