Bonjour,
Dans le cadre d'une application .ear je voudrais récupérer un enregistrement dans une base de données à partir d'un champ login. Le module webapp utilise le framework jsf.
Pour cela : j'ai un managed bean avec une méthode rudimentaire doSignIn() qui est appellé par l'utilisateur depuis une JSP.
la méthode findByLogin se trouve dans un Stateless bean du module EJB.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public String doSignIn(){ String cle=null; Parents p = pfl1.findByLogin(login); System.out.println("nom"+p.getNom()); return cle; }
La voici :
Précisons enfin que mon entity correspondant se nomme "Parents" (histoire d'essayer d'être clair :p).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 public Parents findByLogin(String login) { //ligne 45 ici (cf stacktrace) Parents p =(Parents) em.createQuery("SELECT p FROM Parents p WHERE p.login = :login").getSingleResult(); System.out.print("parent : "+p.getEmail()); return p; }
Lorsque je tente d'exécuter ce code, ma jsp affiche une erreur :
D'après moi cela signifie que le passage du paramètre login saisi par l'utilisateur dans la boite de login à la requête JPQL pose problème...et à mon avis c'est à l'endroit de la requête...mais pourquoi? et comment résoudre ce problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Cause racine java.lang.IllegalStateException: Query argument login not found in the list of parameters provided during query execution
Quelqu'un a-t-il une idée?
Merci.
Partager