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
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;
    }
la classe client
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;
    }
J'ajoute que je suis dans un environnement web.
La classe controller qui gère l'opération
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);
exception est la suivante
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
Evidement ce cas n'arrive que quand je crée une offre à partir d'un client existant. Une idée me ferait bien avancer.