使用CascadeType.ALL 的JPA 中的孤立節點
儘管使用了JPA 的CascadeType.ALL,孤立節點仍保留在資料庫中,阻礙了刪除。要解決此問題,有多種方法,取決於持久性提供者和JPA 版本:
Hibernate 設定
如果使用Hibernate,請明確定義CascadeType .DELETE_ORPHAN 註解與JPA CascadeType.ALL 結合使用:
@OneToMany(cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN}) private Listbikes;
JPA解決方案(沒有Hibernate)
在沒有Hibernate的情況下,在刪除父記錄之前明確刪除子元素:
JPA 2.0
JPA 2.0引入了orphanRemoval attribute:
@OneToMany(mappedBy="foo", orphanRemoval=true)透過將orphanRemoval設為true,當父實體被刪除時,JPA將自動刪除孤立的子記錄。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3