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