[Java] JPA CascadeType.ALL no elimina huérfanos



Answers

Si está utilizando JPA 2.0, ahora puede usar el orphanRemoval=true de la anotación @xxxToMany para eliminar huérfanos.

En realidad, CascadeType.DELETE_ORPHAN ha quedado obsoleto en 3.5.2-Final.

Question

Tengo problemas para eliminar nodos huérfanos utilizando JPA con la siguiente asignación

@OneToMany (cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "owner")
private List<Bikes> bikes;

Estoy teniendo el problema de los roles huérfanos en la base de datos.

Puedo usar la anotación org.hibernate.annotations.Cascade etiqueta específica de Hibernate, pero obviamente no quiero vincular mi solución a una implementación de Hibernate.

EDITAR : Parece que JPA 2.0 incluirá soporte para esto.







Para los registros, en OpenJPA antes de JPA2 era @ElementDependant.




Según Java Persistence with Hibernate , la eliminación huérfana en cascada no está disponible como una anotación JPA.

Tampoco es compatible con JPA XML.




Solo @OneToMany(cascade = CascadeType.ALL, mappedBy = "xxx", fetch = FetchType.LAZY, orphanRemoval = true) .

Eliminar targetEntity = MyClass.class , funciona bien.




Links