Mam problem z prostym @OneToMany
mapowaniem między jednostką nadrzędną i podrzędną. Wszystko działa dobrze, tylko że rekordy podrzędne nie są usuwane, gdy usuwam je z kolekcji.
Rodzic:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
Dziecko:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Jeśli teraz usunę i dziecko z zestawu childs, nie zostanie ono usunięte z bazy danych. Próbowałem anulować child.parent
odniesienie, ale to też nie zadziałało.
Encje są używane w aplikacji internetowej, usuwanie odbywa się jako część żądania Ajax. Nie mam listy usuniętych dzieci po naciśnięciu przycisku zapisywania, więc nie mogę ich niejawnie usunąć.