Tu crées un nouvel Objet Personne p1 que tu remplis mais tu n'en fais rien, pourquoi ?
Dans le parcours de ton iterator tu récupères le résultat mais tu n'en fais rien non plus ?
Finalement tu appelles findForward selon que c'est un succes/echec mais quand lui transmet-tu l'objet Personne à afficher ? Que fais ta page une fois redirigé ?
Quelques remarques sinon, puisque tu recherches un objet via son Id dans la table, tu peux utiliser session.createQuery("..." ).first() et vérifier si il est nul ou non. De même si tu as mappé ton objet dans la conf d'hibernate tu n'as pas besoin de charger id, nom, prenom, tu peux charger directement l'objet, à moins que le nombre de colonnes soit trop grand et que tu ne veuilles effectivement que ces 3 là, mais pour l'instant tu n'en fais rien.
Tu devrais regarder dans la doc d'hibernate ou voir via spring pour gérer le côté transactionnel de tes requêtes ainsi que la gestion des sessions hibernate.
Code :
- package com.struts.controleur;
- public final class RecherchePersonnAction extends Action {
- public ActionForward execute(ActionMapping mapping, ActionForm form,
- HttpServletRequest req, HttpServletResponse res) throws Exception {
- String resultat = null;
- PersonneForm pForm = (PersonneForm)form;
- Session session = factory.openSession();
- Transaction tx;
- try {
- tx = session.beginTransaction();
- String query = "select p from gestion.personne p where p.Id = " + pForm.getId();
- Personne pFound = (Personne)session.createQuery(query).first();
- if (pFound != null) { // on a trouvé l'objet, que veux-tu en faire ?
- System.out.println("Objet Personne(id=" + pForm.getId() + ", " + pFound + " ) trouvé!" );
- resultat = "succes";
- } else {
- System.out.println("Objet Personne(id=" + pForm.getId() + " ) non trouvé!" );
- resultat = "introuvable";
- }
- tx.commit();
- } catch (Exception e) {
- if (tx != null) tx.rollback();
- e.printStackTrace();
- resultat = "echec";
- } finally {
- session.close();
- }
- return mapping.findForward(resultat);
- }
- }
|
As-tu activé le mode sql debug pour hibernate afin de vérifier les requêtes effectuées ?
---------------
Always wear a camera!