Je suis certain qu'il y a un post qui traite de ce sujet mais je ne suis pas arrivé à mettre la main dessus.
j'ai deux entité Offre et client une offre peut être créée à partir d'un nouveau client ou d'un client existant. dans un cas je travail avec un nouvelle instance de client dans l'autre avec une instance existante. voici le mapping des deux classes.
la classe offre
la classe client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 @ManyToOne(cascade = {CascadeType.MERGE, CascadeType.PERSIST}, fetch = FetchType.EAGER) @JoinColumn(name = "client_id") public Client getCommanditaire() { return commanditaire; }
J'ajoute que je suis dans un environnement web.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 @OneToMany(mappedBy = "commanditaire", cascade = CascadeType.ALL, fetch = FetchType.EAGER) public Set<Offre> getCommandes() { return commandes; }
La classe controller qui gère l'opération
exception est la suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 @SessionScoped public class OffreController extends BaseController { @EJB private com.netescape.jpa.facades.OffreFacade ejbFacade; private Offre current; //retourne le ejbFacade getFacade().create(current);
Evidement ce cas n'arrive que quand je crée une offre à partir d'un client existant. Une idée me ferait bien avancer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Caused by: javax.persistence.PersistenceException: org.hibernate.PersistentObjectException: detached entity passed to persist: com.netescape.jpa.entities.Client
Partager