Saya memiliki masalah dengan @OneToMany
pemetaan sederhana antara orang tua dan entitas anak. Semua berfungsi dengan baik, hanya saja catatan anak tidak dihapus ketika saya menghapusnya dari koleksi.
Orang tua:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = {CascadeType.ALL}, mappedBy = "parent")
private Set<Child> childs = new HashSet<Child>();
...
}
Anak:
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Jika sekarang saya menghapus dan child dari Set childs, itu tidak bisa dihapus dari database. Saya mencoba membatalkan child.parent
referensi, tetapi tidak berhasil.
Entitas digunakan dalam aplikasi web, penghapusan terjadi sebagai bagian dari permintaan Ajax. Saya tidak memiliki daftar anak yang dihapus ketika tombol simpan ditekan, jadi saya tidak bisa menghapusnya secara implisit.