Bonjour,
Je debute sous hibernate et je voudrais recuperer un object pour le supprimer dans ma base de données en utilisant session.load(Class, Serializable)
Ma methode supprimer est :
J'ai deja une erreure sous eclipse me disant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public void supprimer(int id){ Session session = HibernateUtil.currentSession(); Transaction tx= session.beginTransaction(); Object o = (Object)session.load(Object.class, id); session.delete(o); tx.commit; }
The method load(Class, Serializable) in the type Session is not applicable for the arguments (Class,
int)
j'ai du mal a comprendre ce qu'il veut en terme de Serializable, mon id est definit dans Object.hbm.xml de cette facon :
dans ma base de donnée id est aussi de type integer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <id name="id" type="integer" unsaved-value="null" > <column name="ID" not-null="true"/> <generator class="increment"/> </id>
En cherchant sur le net j'ai trouvé une autre methode :
Mais je trouve ca pas tres propre et pas tres interessant sachant que la methode load existe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Session session = HibernateUtil.currentSession(); Transaction tx= session.beginTransaction(); List list = session.find("from Object where id="+id); Iterator it = list.iterator(); while(it.hasNext()) { Object o = (Object)it.next(); session.delete(o); } tx.commit();
Est ce que quelqu'un sait pourquoi la methode load refuse mon id?
ps: j'ai essayé de passer par un long (cast de int en long), la je n'ai plus d'erreurs sous eclipse mais j'ai une erreur a l'execution.
Merci par avance
Edenyorke
Partager