Bonjour, je débute (d'aujourd'hui...) avec Hibernate 3 et je développe une servlet de type CRUD pour une table de ma base (avec POJO associé)
Les fonctionnalités CRUD fonctionnent à priori bien mais la base de données se vide à l'arrêt de mon conteneur j2ee (Glassfish 3.1). Je suis certain que le problème est lié à la destruction de la session Hibernate mais je ne peux pas en dire plus. Voici la partie concernée de ma servlet :

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
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException 
    {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        HttpSession httpSession = request.getSession();
        Transaction tx = null;
        List<Arrete> arlist = null;
 
        try 
        {
            Session session = HibernateUtil.getSession();
 
 
            if(request.getParameter("action") != null && request.getParameter("id") != null)
            {
                String action = request.getParameter("action");
                int id = Integer.parseInt(request.getParameter("id"));
                System.out.println("ID : " + id);
 
                try
                {
                    if(action.equals("delete"))
                    {
                        session.createQuery("delete from Arrete where id = :id").setParameter("id", id).executeUpdate();
                    }
                    tx = session.beginTransaction();
                    tx.commit();
                }
 
                catch(Exception e)
                {
                    System.out.println(e.getMessage());
                    tx.rollback();
                }
 
                finally
                {
                    response.sendRedirect("ArreteServlet");
                }
            }
 
            if(request.getParameter("titre") != null && request.getParameter("date") != null)
            {
                if(request.getParameter("titre").length() > 2 && request.getParameter("titre").length() < 15 && request.getParameter("date").length() == 10)
                {
                    Arrete ar = new Arrete();
                    ar.setTitre(request.getParameter("titre"));
                    ar.setDate(request.getParameter("date"));
 
                    if(request.getParameter("description") != null && request.getParameter("description").length() > 2 && request.getParameter("description").length() < 50)
                    {
                        ar.setDecription(request.getParameter("description"));
                    }                
                    session.save(ar);
                    try
                    {                       
                        tx = session.beginTransaction();
                        tx.commit();
                    }
 
                    catch(Exception e)
                    {
                        System.out.println(e.getMessage());
                        tx.rollback();
                    }
 
                    finally
                    {
                        response.sendRedirect("ArreteServlet");
                    }
                }
            }
 
            else
            {
                arlist = session.createQuery("from Arrete").list();
                httpSession.setAttribute("arlist", arlist);
                response.sendRedirect("jsp/arretes/liste_arretes.jsp");
            }
 
            session.close();
        } 
 
        catch(Exception e)
        {
            System.out.print(e.getMessage());
        }
 
        finally 
        {            
            out.close();
        }
Je pense que c'est un truc de débutant du genre bateau mais disposant de plusieurs sources de référence fragmentées j'ai un peu de mal à l'apprentissage.