」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 CascadeType.ALL 處理 JPA 中的孤立節點?

如何使用 CascadeType.ALL 處理 JPA 中的孤立節點?

發佈於2024-11-04
瀏覽:357

How to Handle Orphaned Nodes in JPA with CascadeType.ALL?

使用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;

JPA解決方案(沒有Hibernate)

在沒有Hibernate的情況下,在刪除父記錄之前明確刪除子元素:

  1. 取得要刪除的主行。
  2. 取得子行elements.
  3. 刪除所有子元素。
  4. 刪除主行。
  5. 關閉會話。

JPA 2.0

JPA 2.0引入了orphanRemoval attribute:

@OneToMany(mappedBy="foo", orphanRemoval=true)
透過將orphanRemoval設為true,當父實體被刪除時,JPA將自動刪除孤立的子記錄。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3