langage d'interrogation en veille prolongée
Question
veuillez convertir le sql en hql
Instruction SQL : s élimine le nom d'utilisateur de useraccout où email = "valeur du paramètre"
Description supplémentaire:
lors de l'exécution du code, l'erreur suivante apparaît:
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;
}
lors de l'exécution du code, l'erreur suivante s'affiche
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)
La solution
Il semble que vous n'ayez pas mappé une classe nommée Useraccount
. Ma conjecture est que soit:
- Vous avez mappé une classe nommée
Useraccount
et avez mal saisi le nom de cette classe dans la requête - Vous n'avez mappé aucune classe. Cela indique que vous ne comprenez pas les bases d'Hibernate. En résumé, chaque classe mappée sur une table de base de données doit définir ce mappage à l'aide d'un fichier XML ou d'annotations.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow