[英]Delete cascade Category child (Java Hibernate JPA)
我有這個實體來表示一個具有自我關系的類別系統來獲取子類別:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "codigo_categoria")
private Long codigoCategoria;
@Column(unique = true)
private String nombre;
private String descripcion;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "codigo_categoria_padre")
@JsonBackReference
private Categoria categoriaPadre;
@OneToMany(mappedBy = "categoriaPadre", fetch = FetchType.EAGER, cascade = CascadeType.REMOVE, orphanRemoval = true)
private List<CategoriaExtends> categoriasHijas;
問題是當我想刪除具有子類別的類別時。 我想刪除所有子類別,但 Java 給我留下了這個例外:
無法刪除或更新父行:外鍵約束失敗(
vanger
,CONSTRAINTproducto
FOREIGN KEY(FKju4fpj8umbyi05750yjm70cx0
)REFERENCEScategoria
(codigo_categoria
codigo_categoria
)
我嘗試更改諸如orphanRemoval=true或cascade = CascadeType.REMOVE之類的內容,或者嘗試將級聯放在單獨的注釋中但不起作用。
我最后的希望是手動遞歸地刪除類別子項,但這不是正確的方法。
提前致謝:)
您應該向我們展示如何刪除類別,但我認為問題在於您沒有從關聯的兩側刪除類別:
Categoria categoria = ...
// Remove association with children
for ( CategoriaExtends child : categoria.getCategoriasHijas() ) {
child.setCategoriaPadre(null);
}
categoria.getCategoriasHijas().clear();
entityManager.remove(categoria);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.