J'ai un problème avec un simple @OneToMany
mappage entre un parent et une entité enfant. Tout fonctionne bien, seuls les enregistrements enfants ne sont pas supprimés lorsque je les supprime de la collection.
Le parent:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
L'enfant:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Si je supprime maintenant un enfant de l'ensemble childs, il n'est pas supprimé de la base de données. J'ai essayé d'annuler la child.parent
référence, mais cela n'a pas fonctionné non plus.
Les entités sont utilisées dans une application web, la suppression intervient dans le cadre d'une requête Ajax. Je n'ai pas de liste d'enfants supprimés lorsque le bouton Enregistrer est enfoncé, je ne peux donc pas les supprimer implicitement.