[Eclipselink] Relation OneToOne, comportement attendu set à null
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 :
Code:
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;
...
} |
et
Code:
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;
} |
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.
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.