org.hibernate.PersistentObjectException: detached entity passed to persist
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:
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:
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:
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:
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.