bonjour a tous;
voila, je developpe une application j2ee sous eclipse galileo(Struts1.2+hibernate3+BD Mysql), vraiment je me trouve incapable de trouver la solution ca fait presque une semaine de recherche, malgré que j'ai realiser une application pareil dans le temps et ca fonctionne,!!!!
le problème, tout simplement, c'est que je veux supprimer un user de la table gestionutilisateur deja listé dans un .jsp (cete operation de list fonctionne), en utilisant criteria.les codes sont ci dessous:
*****************************
code: administration.jsp
***************************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 </tr> <logic:iterate id="gestionutilisateur" name="GestionUtilisateurListForm" property="listUtilisateur"type="com.MaintenanceCERTE.dao.GestionUtilisateu"> <tr> <td><bean:write name="gestionutilisateur" property="idgestionutilisateur" /></td> <td><bean:write name="gestionutilisateur" property="nomprenom" /></td> <td><bean:write name="gestionutilisateur" property="grade" /></td> <td><bean:write name="gestionutilisateur" property="laboratoire" /></td> <td><bean:write name="gestionutilisateur" property="telephone" /></td> <td><bean:write name="gestionutilisateur" property="email" /></td> <td><ahref="GestionUtilisateurSupprimer.do?operation=delete&id=<%=gestionutilisateur.getIdgestionutilisateur() %>">Supprimer</a></td> </tr> </logic:iterate>
code beans GestionUtilisateur.java
***************************
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 public class GestionUtilisateur { private Long idgestionutilisateur; // dans les classes action et //form j'ai utiliser un int private String nomprenom; private String grade; private String laboratoire; private String telephone; private String email; public GestionUtilisateur(Long idgestionutilisateur, String nomprenom,String grade,String laboratoire,String telephone,String email) { this.setIdgestionutilisateur(idgestionutilisateur); this.nomprenom=nomprenom; this.grade=grade; this.laboratoire=laboratoire; this.telephone=telephone; this.email=email; ................. les getters et les setters .....................}
code GestionUtilisateurAction:
*******************************
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public ActionForward execute .{ GestionUtilisateurSupprimerForm gestion= (GestionUtilisateurSupprimerForm) form; int id= gestion.getIdgestionutilisateur(); String operation= request.getParameter("operation"); if("delete".equals(operation)) { SimulateDataBase simulateDB = new SimulateDataBase(); simulateDB.supprimer(id); } return mapping.findForward("supprimerUser"); }}
code GestionUtilisateur.hbm.xml:
-----------------------------------------------
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <hibernate-mapping> <class name="A.B.C.GestionUtilisateur" table="gestionutilisateur"> <id name="idgestionutilisateur" type="java.lang.Long" column="idgestionutilisateur"> <generator class="assigned" /></id> <property name="nomprenom" type="java.lang.String" column="nomprenom" /> <property name="grade" type="java.lang.String" column="grade"/> <property name="laboratoire" type="java.lang.String" column="laboratoire" /> <property name="telephone" type="java.lang.String" column="telephone"/> <property name="email" type="java.lang.String" column="email" /> </class> </hibernate-mapping>
code Dao, fonction supprimer de classe SimulateDataBase:
**********************
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 public void supprimer(int idgestionutilisateur) { SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); Session session= sessionFactory.openSession(); Transaction transaction=null; transaction=(Transaction) session.beginTransaction(); try { Criteria crit=session.createCriteria(GestionUtilisateur.class); GestionUtilisateur gestionutilisateur= (GestionUtilisateur) session.get(GestionUtilisateur.class,Long.valueOf(idgestionutilisateur)); session.delete(gestionutilisateur); transaction.commit(); } catch (HibernateException e){ transaction.rollback(); e.printStackTrace(); } finally{ session.close(); }}
ERREUUUUUUUUUUUUUUUUUUR qui me bloque, c'est que la suppression se fait seulement pour un objet ayant un id=0 alors que les autres ne suppriment pas ??????
************************java.lang.IllegalArgumentException: attempt to create delete event with null entity
at org.hibernate.event.DeleteEvent.<init>(DeleteEvent.java:24)
at org.hibernate.impl.SessionImpl.delete(SessionImpl.java:739)
atA.B.C.SimulateDataBase.supprimer(SimulateDataBase.java:194)
atA.B.action.GestionUtilisateurSupprimerAction.execute(GestionUtilisateurSupprimerAction.java:31)
SVP les amis vos aides, merci d'avance
cordialement
Partager