Bonjour,
Quel est le comportement attendu si 2 entités sont liés par une relation OneToOne lorsqu'on met la propriété à null?
Je ne suis pas arrivé à ce que cela provoque automatiquement la suppression en base de l'entité liée.
Exemple :
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @Entity public class Candidature extends ModelObject implements Serializable { @OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, mappedBy="candidature") private DetailCandidature detailCandidature; ... }Si je me contente de faire un candidature.setDetailCandidature(null); et un persist de candidature, cela ne provoquera pas la suppression de detailCandidature en base.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 @Entity public class DetailCandidature extends ModelObject implements Serializable { @OneToOne(fetch = FetchType.LAZY, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH}) @JoinColumn(name = "idcandidature") private Candidature candidature; }
J'ai bien un moyen de contourner ce pb en gérant une liste des éléments à supprimer, mais je m'attendrais à une solution purement JPA.
Partager