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
</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
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:
……
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:
<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:
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