Ich habe ein Problem mit einer einfachen @OneToMany
Zuordnung zwischen einer übergeordneten und einer untergeordneten Entität. Alles funktioniert gut, nur dass untergeordnete Datensätze nicht gelöscht werden, wenn ich sie aus der Sammlung entferne.
Das Elternteil:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
Das Kind:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Wenn ich jetzt ein Kind aus dem Kinder-Set lösche, wird es nicht aus der Datenbank gelöscht. Ich habe versucht, die child.parent
Referenz aufzuheben , aber das hat auch nicht funktioniert.
Die Entitäten werden in einer Webanwendung verwendet, das Löschen erfolgt im Rahmen einer Ajax-Anfrage. Ich habe keine Liste der gelöschten Kinder, wenn die Schaltfläche Speichern gedrückt wird, daher kann ich sie nicht implizit löschen.