salut,
j'arrive pas a supprimer un fournisseur de ma base de donné.. d'ailleur j'ai essayé le mm code sur d'autre entites est ça a marché
voici l'erreur:
ma classe Fournisseur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Illegal attempt to associate a collection with two open sessions
ma classe service :
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 package com.project.beans; import java.util.ArrayList; import java.util.Collection; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.ManyToMany; @Entity public class Fournisseur { @Id @GeneratedValue private int idFournisseur; private String nom; private String email; private String adresse; private String description; private String tel; @ManyToMany private Collection<Produit> produits = new ArrayList<Produit>(); public Fournisseur() { } public Fournisseur( String nom, String email, String adresse, String description, String tel, ArrayList<Produit> produits ) { this.nom = nom; this.email = email; this.adresse = adresse; this.description = description; this.tel = tel; this.produits = produits; } public String getNom() { return nom; } public void setNom( String nom ) { this.nom = nom; } public String getEmail() { return email; } public void setEmail( String email ) { this.email = email; } public String getAdresse() { return adresse; } public void setAdresse( String adresse ) { this.adresse = adresse; } public String getDescription() { return description; } public void setDescription( String description ) { this.description = description; } public String getTel() { return tel; } public void setTel( String tel ) { this.tel = tel; } public Collection<Produit> getProduits() { return produits; } public void setProduits( Collection<Produit> produits ) { this.produits = produits; } public int getIdFournisseur() { return idFournisseur; } }
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
94
95 package com.project.service; import java.util.List; import org.hibernate.Session; import org.hibernate.Transaction; import com.project.beans.Fournisseur; import com.project.dao.IDao; import com.project.util.HibernateUtil; public class FournisseurService implements IDao<Fournisseur> { private Session session; private Transaction tx; @Override public boolean create( Fournisseur o ) { try { session = HibernateUtil.getSessionFactory().openSession(); tx = session.beginTransaction(); session.save( o ); tx.commit(); return true; } catch ( Exception e ) { if ( tx != null ) tx.rollback(); return false; } } @Override public boolean update( Fournisseur o ) { try { session = HibernateUtil.getSessionFactory().openSession(); tx = session.beginTransaction(); session.update( o ); tx.commit(); return true; } catch ( Exception e ) { if ( tx != null ) tx.rollback(); return false; } } @Override public boolean delete( Fournisseur o ) { try { session = HibernateUtil.getSessionFactory().openSession(); tx = session.beginTransaction(); session.delete( o ); tx.commit(); return true; } catch ( Exception e ) { System.out.println( e.getMessage() ); if ( tx != null ) tx.rollback(); return false; } } @Override public Fournisseur findById( int id ) { Fournisseur fournisseur = null; try { session = HibernateUtil.getSessionFactory().openSession(); tx = session.beginTransaction(); fournisseur = (Fournisseur) session.get( Fournisseur.class, id ); tx.commit(); return fournisseur; } catch ( Exception e ) { if ( tx != null ) tx.rollback(); return null; } } @Override public List<Fournisseur> findAll() { List<Fournisseur> fournisseurs = null; try { session = HibernateUtil.getSessionFactory().openSession(); tx = session.beginTransaction(); fournisseurs = session.createQuery( "from Fournisseur" ).list(); tx.commit(); return fournisseurs; } catch ( Exception e ) { if ( tx != null ) tx.rollback(); return null; } } }
merci d'avance
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 package com.project.servlets; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.project.beans.Fournisseur; import com.project.service.FournisseurService; public class SuppressionFournisseur extends HttpServlet { public static final String PARAM_ID_FOURNISSEUR = "idFournisseur"; public static final String VUE = "/listeFournisseurs"; private static String getValeurParametre( HttpServletRequest request, String nomChamp ) { String valeur = request.getParameter( nomChamp ); if ( valeur == null || valeur.trim().length() == 0 ) { return null; } else { return valeur; } } protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { /* Récupération du paramètre */ int idFournisseur = Integer.parseInt( getValeurParametre( request, PARAM_ID_FOURNISSEUR ) ); System.out.println( "++++++++++++++++++++++++++++++++++++++++++++++++++" + idFournisseur ); FournisseurService fs = new FournisseurService(); List<Fournisseur> fournisseurs = fs.findAll(); // Si l'id du fournisseur et la liste des fournisseurs ne sont pas vides // */ if ( idFournisseur != 0 && !fournisseurs.isEmpty() ) { // Alors suppression du fournisseur de la base de donnée System.out.println( "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh" ); fs.delete( fs.findById( idFournisseur ) ); } /* Redirection vers la fiche récapitulative */ response.sendRedirect( request.getContextPath() + VUE ); } protected void doPost( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { /* À la réception d'une requête POST, simple affichage de liste */ this.getServletContext().getRequestDispatcher( VUE ).forward( request, response ); } }
Partager