Ho un problema con una semplice @OneToMany
mappatura tra un'entità padre e un'entità figlio. Tutto funziona bene, solo i record figlio non vengono eliminati quando li rimuovo dalla raccolta.
Il genitore:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
Il bambino:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Se ora elimino e figlio dal set figlio, non viene eliminato dal database. Ho provato a annullare il child.parent
riferimento, ma non ha funzionato neanche.
Le entità vengono utilizzate in un'applicazione Web, l'eliminazione avviene come parte di una richiesta Ajax. Non ho un elenco di elementi eliminati quando si preme il pulsante Salva, quindi non posso eliminarli implicitamente.