[英]Hibernate OneToMany cascade
我創建了兩個具有OneToMany關系的實體,但是當我從數據庫中手動刪除父級時,子級仍然存在。 我嘗試了不同的解決方案,但似乎沒有任何效果。 我究竟做錯了什么?
@Entity
@Table(name = "PARENT")
public class Parent implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
Integer id;
@OneToMany(cascade = CascadeType.PERSIST, orphanRemoval = true)
@JoinColumn(name = "parent_id")
public List<Child> children = new ArrayList<Child>();
}
@Entity
@Table(name = "CHILD")
public class Child implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Integer id;
}
我嘗試了以下類似的解決方案,但是由於某些原因,當我通過命令手動刪除父項時,子項在刪除父項后仍然保留。
我建議您可以重新檢查數據庫表。 “ CHILD”表中應有一個“ PARENT_ID”列。 通過提供與您的數據庫有關的外鍵違反錯誤,可以防止刪除父級而不刪除相應的子級。
請檢查數據庫中表PARENT和CHILD的表結構。 在CHILD表中以及在delete級聯屬性集上應該有一個對parent_id的外鍵引用。
根據您的模型,子代與父代之間沒有關系,因此刪除父代不會級聯子代。 您可以通過從子級到父級添加@ManyToOne關系來創建雙向關系,也可以從子級指定單向@ManyToOne關系后使用@OnDelete(action = OnDeleteAction.CASCADE)屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.