使用CascadeType.ALL 的JPA 中的孤立節點
儘管使用了JPA 的CascadeType.ALL,節點仍保留在資料庫中,阻礙了刪除。要解決此問題,有多種方法,取決於持久性提供者和JPA 版本:
Hibernate 設定
如果使用Hibernate,請明確定義CascadeType .DELETE_ORPHAN 註解與JPA CascadeType.ALL結合使用:
@OneToMany(cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN}) private List<Bikes> bikes;
JPA 解決方案(無Hibernate)
在沒有Hibernate 的情況下,在刪除父記錄之前明確刪除子元素: 在沒有Hibernate 的情況下,在刪除父記錄之前明確刪除子元素:
JPA 2.0
JPA 2.0 引入了orphanRemoval 屬性:
@OneToMany(mappedBy="foo", orphanRemoval=true)
透過將實體設定為真,被當父刪除時,JPA將自動刪除孤立的子記錄。
以上是如何使用 CascadeType.ALL 處理 JPA 中的孤立節點?的詳細內容。更多資訊請關注PHP中文網其他相關文章!