JPA CascadeType.ALL 不刪除孤兒
當使用JPA 與@OneToMany 映射且cascade = CascadeType.ALL 時,預計孤兒當父實體被刪除時,節點也會被刪除。但是,在某些情況下,孤立記錄可能會保留在資料庫中。
解決方案:
使用Hibernate:
如果使用Hibernate,可以將CascadeType.DELELETEP. ALL一起加入:
<code class="java">@OneToMany (cascade = {CascadeType.ALL, CascadeType.DELETE_ORPHAN}, fetch = FetchType.EAGER, mappedBy = "owner") private List<Bikes> bikes;</code>
沒有Hibernate:
沒有Hibernate,孤立記錄必須是在刪除主記錄之前明確刪除:
JPA 2.0:
JPA 2.0 引入了orphanRemoval 標誌:
<code class="java">@OneToMany(mappedBy="foo", orphanRemoval=true)</code>
以上是為什麼沒有使用 JPA CascadeType.ALL 刪除孤立記錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!