J'essaie de supprimer un parent, mais je continue d'obtenir une violation de clé étrangère. Si je mets Cascade.ALL dans le parent, il supprime aussi les enfants. Et c'est maintenant ce que je veux.JPA comment faire pour supprimer parent sans supprimer les enfants?
J'ai ma classe parent: Docteur
//bi-directional many-to-one association to Patient @OneToMany(cascade={CascadeType.PERSIST, CascadeType.MERGE, CascadeType.DETACH}, orphanRemoval=false, mappedBy="docteur") private List patients;
et mes enfants sont les suivants: patients
Je mis que
@ManyToOne() private Docteur docteur;
mais dans mon cas, le choul patient ont seulement un Docteur .
Dans ma classe Manager. J'essaie beaucoup de choses qui ne fonctionne pas
ici ma dernière version
Clinique clinique = read(clinique_ID); Docteur docteur = entityManager.createNamedQuery("getDocteur", Docteur.class).setParameter("clinique_ID", clinique_ID).setParameter("docteur_ID", docteur_ID).getSingleResult(); clinique.getDocteurs().remove(docteur); entityManager.merge(clinique); entityManager.persist(clinique);
Voici l'erreur que je reçois:
Impossible de supprimer ou mettre à jour une ligne parent: une contrainte de clé étrangère échoue (jerabi_asteriskdb/Patient
, CONTRAINTE FK340C82E5A10F077E
FOREIGN KEY (docteur_DOCTEUR_ID
) rÉFÉRENCES Docteur
(DOCTEUR_ID
))
le problème c'est comment faire cela dans JPA 2.0. SQL simple aurait été facile. –