簡體   English   中英

刪除級聯類別子 (Java Hibernate JPA)

[英]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 ,CONSTRAINT producto FOREIGN KEY( FKju4fpj8umbyi05750yjm70cx0 )REFERENCES categoriacodigo_categoria codigo_categoria

我嘗試更改諸如orphanRemoval=truecascade = 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM