Nói rằng tôi có một một chiều@ManyToOne
mối quan hệ như sau:JPA: một chiều nhiều-một và tầng xóa
@Entity
public class Parent implements Serializable {
@Id
@GeneratedValue
private long id;
}
@Entity
public class Child implements Serializable {
@Id
@GeneratedValue
private long id;
@ManyToOne
@JoinColumn
private Parent parent;
}
Nếu tôi có một P phụ huynh và trẻ em C ... C ntham chiếu trở lại P, có cách sạch và đẹp trong JPA để tự động xóa các con C ... C n khi P bị xóa (tức là entityManager.remove(P)
)?
Những gì tôi đang tìm kiếm là một chức năng tương tự như ON DELETE CASCADE
trong SQL.
Ngay cả khi chỉ có 'Trẻ em' có tham chiếu đến 'Cha mẹ' (theo cách đó, tham chiếu là một chiều) là có vấn đề để bạn thêm Danh sách 'Trẻ em' với ánh xạ '@OneToMany' và 'Cascade = ALL 'thuộc tính cho' Phụ huynh '? Tôi cho rằng JPA nên giải quyết rằng ngay cả khó khăn chỉ có 1 bên giữ tham chiếu. – kvDennis
@kvDennis, có những trường hợp bạn không muốn kết hợp chặt chẽ với nhiều phía. Ví dụ. trong các thiết lập giống như ACL nơi quyền bảo mật là "add-on" trong suốt – Bachi