Bonjour,
Je travaille sur une appli web utilisant Hibernate.
J'ai un compte qui est lié à un guichet. Voici comment ils sont liés :
Code du compte :
Lors de la création du compte, l'utilisateur doit sélectionner un guichet dans la liste des guichets déjà présents en base. Je fais donc pointer le guichet du compte vers le guichet sélectionné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 @ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE }) @JoinColumn(name = "id_guichet") public Guichet getGuichet() { return guichet; } public void setGuichet(Guichet guichet) { this.guichet = guichet; }
Lorsque j'appelle la fonction persisit sur mon compte, j'ai l'erreur suivante :
javax.ejb.EJBException: nested exception is: org.hibernate.PersistentObjectException: detached entity passed to persist: domain.Guichet
at service.referentiel.impl.ClientServiceImpl_3mmudc_ClientServiceWrap.creerClient(ClientServiceImpl_3mmudc_ClientServiceWrap.java:43)
at managedBean.referentiel.client.ClientBean.validerCreation(ClientBean.java:340)
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:585)
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
... 19 more
J'ai essayé plusieurs choses :
- remplacer le persist par un saveOrUpdate : Dans ce cas, j'obtient une exception RollBack que je ne sais pas résoudre
- l'appel de merge puis flush avant l'appel à la fonction persist mais j'ai toujours la même exception.
Pourriez-vous m'aider ?
Partager