Salut,
j'utilise le framework seam : jboss-seam-2.0.1.GA et le serveur d'application JBoss-4.2.0.GA
Je développe des EJB session bean, et j'ai un problème lorsque je veux supprimer un enregistrement de la base de données avec la méthode em.remove.
Voici le code qui permet de supprimer un document (je considére qu'un document à une liste de tag et un tag correspond une liste de document)
Mais voici l'erreur qui s'affiche dans la console windows :
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 public void supprimerDocument(Document document) { Document doc = em.find(Document.class, document.getId()); this.getListeDocument().remove(doc); Set<Tag> tags = this.listeTag(document.getNom()); Iterator<Tag> iterator = tags.iterator(); while(iterator.hasNext()){ Tag t = iterator.next(); t = em.find(Tag.class, t.getId()); System.err.println("nom du tag = "+t.getNom()); doc.getTag().remove(t); t.getDocument().remove(doc); } System.err.println("ATTENTION : suppression"); em.flush(); em.refresh(doc); em.remove(doc); doc=null; //em.remove(em.find(Document.class, doc.getId())); System.err.println("ATTENTION : suppression effectué"); }
Si quelqu'un peut me dire d'où cela peut venir.
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 09:24:16,031 WARN [arjLoggerI18N] [com.arjuna.ats.arjuna.coordinator.TwoPhaseCo ordinator_2] TwoPhaseCoordinator.beforeCompletion - failed for com.arjuna.ats.in ternal.jta.resources.arjunacore.SynchronizationImple@a1bced javax.persistence.EntityNotFoundException: deleted entity passed to persist: [en tityBeans.Document#<null>] at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException (AbstractEntityManagerImpl.java:613) at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(Abstra ctEntityManagerImpl.java:524) at com.arjuna.ats.internal.jta.resources.arjunacore.SynchronizationImple .beforeCompletion(SynchronizationImple.java:114) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.beforeCompletio n(TwoPhaseCoordinator.java:249) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoo rdinator.java:88) at com.arjuna.ats.arjuna.AtomicAction.commit(AtomicAction.java:177) at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.c ommitAndDisassociate(TransactionImple.java:1256) at com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.co mmit(BaseTransaction.java:135) at com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTra nsactionManagerDelegate.java:87) at org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(Serve rVMClientUserTransaction.java:140) at org.jboss.seam.transaction.UTTransaction.commit(UTTransaction.java:52 ) at org.jboss.seam.jsf.SeamPhaseListener.commitOrRollback(SeamPhaseListen er.java:592) at org.jboss.seam.jsf.SeamPhaseListener.handleTransactionsAfterPhase(Sea mPhaseListener.java:330) at org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListe ner.java:231) at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.jav a:182) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:280) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.renderCycle(Rec eiveSendUpdates.java:57) at com.icesoft.faces.webapp.http.core.ReceiveSendUpdates.service(Receive SendUpdates.java:45) at com.icesoft.faces.webapp.http.core.IDVerifier.service(IDVerifier.java :25) at com.icesoft.faces.webapp.http.core.ViewBoundServer.service(ViewBoundS erver.java:52)
Merci
Partager