Je recupère un User de ma base de données, que je place en Session pour traitement via formulaire HTML :
L'objet recuperé est donc detaché de la session hibernate
Puis dans un autre traitement, je recupère l'objet de la session, je voudrais le reattacher à la session afin de lui transmettre des modifications :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 us = gestionUser.recupererUser(Integer.parseInt(req.getParameter("id"))); HttpSession s = req.getSession(true); s.setAttribute("searchUser",us); RequestDispatcher _requestDispatcher = this.getServletContext().getRequestDispatcher(res.encodeURL("/pages/restricted/restrictedAdmin/detailUser.jsp")); _requestDispatcher.forward(req, res);
avec attach de la sorte :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Session s = accessManager.startSession(); accessManager.startTransaction(s); accessManager.attach(us,s); us.setNom((String)paramsUser.get("nom")); us.setPrenom((String)paramsUser.get("prenom")); us.setAdresse((String)paramsUser.get("adresse")); us.setSociete((String)paramsUser.get("societe")); us.setCp(Integer.parseInt((String)paramsUser.get("cp"))); us.setVille((String)paramsUser.get("ville")); us.setMailPerso((String)paramsUser.get("mail")); us.setTel((String)paramsUser.get("tel")); if (!paramsUser.get("login").equals("") && !paramsUser.get("pass").equals("")){ modifPass = true; us.getAuthentification().setLogin((String)paramsUser.get("login")); us.getAuthentification().setPass((String)paramsUser.get("pass")); } }
Or si je modifie les champs, donc avec les set... cela modifie mon objet User, rien ne se passe en BDD. Aucune requète n'est effectué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public void attach(Object o, Session session) throws HibernateException { session.lock(o,LockMode.UPGRADE); }
Partager