salut pour tout le monde :
j'ai un classe Document qui contient deux Collection :Collection lignesDocument; Collection paiementDocument.
-mapping de Document :
-mapping de lignesDocument:
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 <class name="ClassesJava.Document" table="DOCUMENT"> ... <set cascade="all,delete-orphan" name="lignesDocument" order-by="NUMERO_LIGNE" table="LIGNE_COMMANDE"> <key> <column name="NUMERO_PIECE"/> <column name="DOCUMENT_TYPE"/> </key> <one-to-many class="ClassesJava.LigneDocument"/> </set> <set cascade="all,delete-orphan" name="paiementDocument" table="PAIEMENT_DOCUMENT"> <key> <column name="NUMERO_PIECE"/> <column name="DOCUMENT_TYPE"/> </key> <one-to-many class="ClassesJava.PaiementDocument"/> </set> .. </class>
-mapping de paiementDocument:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <class name="ClassesJava.LigneDocument" table="LIGNE_DOCUMENT"> ... <many-to-one class="ClassesJava.Document" name="document"> <column name="NUMERO_PIECE"/> <column name="DOCUMENT_TYPE"/> </many-to-one> </class>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <class name="ClassesJava.PaiementDocument" table="PAIEMENT_DOCUMENT" lazy="false"> ... <many-to-one class="ClassesJava.Document" insert="false" name="document" update="false"> <column name="NUMERO_PIECE"/> <column name="DOCUMENT_TYPE"/> </many-to-one> </class>
si je veux supprimer un document il doit supprimer les lignes de document et les paiement associés a ce document : ca marche avec les lignes de document mais il ne supprime pas les paiements et m'affiche l'erreur suivante :
la fonction de suppression et la suivante (je croit que c'est correcte car si je supprime un document qui ne contient pas des paiement ca marche bien )
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66 org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations): [ClassesJava.PaiementDocument#ClassesJava.PaiementDocument@ae8f9c] at org.hibernate.impl.SessionImpl.forceFlush(SessionImpl.java:1014) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:165) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94) at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70) at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507) at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499) at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:218) at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216) at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169) at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296) at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242) at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219) at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169) at org.hibernate.engine.Cascade.cascade(Cascade.java:130) at org.hibernate.event.def.AbstractFlushingEventListener.cascadeOnFlush(AbstractFlushingEventListener.java:131) at org.hibernate.event.def.AbstractFlushingEventListener.prepareEntityFlushes(AbstractFlushingEventListener.java:122) at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:65) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:26) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) at gestioncommerciale.Commande_Client.supprimerDocument(Commande_Client.java:2430) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.el.parser.AstValue.invoke(AstValue.java:191) at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276) at org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68) at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:77) at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91) at com.sun.rave.web.ui.appbase.faces.ActionListenerImpl.processAction(ActionListenerImpl.java:91) at javax.faces.component.UICommand.broadcast(UICommand.java:383) at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55) at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:321) at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:296) at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:253) at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:466) at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97) at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251) at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117) at com.sun.faces.extensions.avatar.lifecycle.PartialTraversalLifecycle.execute(PartialTraversalLifecycle.java:94) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:619)
j'ai essai pas mal de fois avec ce code mais ca marche pas .
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 public void supprimerDocument() { if (document.getIdentifiant() != null && !docGenererParCopie && modificationdoc) { ServiceBean service = (ServiceBean) ServiceFinder.getBean("#{ServiceBean}", ServiceBean.class); Session sess = service.getTheSession(); try { IdDocument id = document.getIdentifiant(); sess.beginTransaction(); Document doc = (Document) sess.load(Document.class, id); sess.delete(doc); sess.getTransaction().commit(); sess.flush(); message = "Le document : " + id.toString() + " est supprimé"; showPanelGroupe = true; reinitialiserDocument(); } catch (Exception e) { e.printStackTrace(); FacesContext context = FacesContext.getCurrentInstance(); FacesMessage msg = new FacesMessage(); msg.setSeverity(FacesMessage.SEVERITY_ERROR); msg.setSummary("Le document n'est pas supprimer : " + e.getMessage()); context.addMessage(null, msg); showPanelGroupe = true; } } else if (!modificationdoc) { reinitialiserDocument(); message = "Veuillez charger un document pour le supprimé"; } }
j'ai vraiment besaoin de vos aide et merci pour tout le monde .
Partager