Eu tenho um problema com um @OneToMany
mapeamento simples entre um pai e uma entidade filho. Tudo funciona bem, apenas os registros filho não são excluídos quando os removo da coleção.
O pai:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
A criança:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Se agora eu excluir e filho do conjunto de filhos, ele não será excluído do banco de dados. Tentei anular a child.parent
referência, mas isso também não funcionou.
As entidades são usadas em um aplicativo Web, a exclusão acontece como parte de uma solicitação do Ajax. Não tenho uma lista de filhos excluídos quando o botão Salvar é pressionado, portanto não posso excluí-los implicitamente.