JPA CascadeType.ALL : Suppression de nœuds orphelins
Lors de l'utilisation de JPA avec l'association CascadeType.ALL, vous pouvez rencontrer des difficultés pour supprimer des nœuds orphelins. Par défaut, CascadeType.ALL ne supprime pas automatiquement les entités orphelines lors de la suppression de l'entité parent.
Pour résoudre ce problème, vous avez plusieurs options :
Avec Hibernate
Si vous utilisez Hibernate, vous pouvez spécifier l'annotation CascadeType.DELETE_ORPHAN en conjonction avec CascadeType.ALL. Cela garantit que les entités orphelines sont automatiquement supprimées lorsque l'entité parent est supprimée.
Sans mise en veille prolongée
Si vous n'utilisez pas Hibernate, vous devez supprimer manuellement les entités orphelines avant de supprimer le parent. entité pour éviter de laisser des enregistrements orphelins dans la base de données. La séquence d'exécution recommandée est la suivante :
Amélioration JPA 2.0
JPA 2.0 introduit l'option orphanRemoval = true , qui automatise la suppression des entités orphelines lorsque l'entité parent est supprimée. Cette option peut être utilisée avec l'annotation @OneToMany comme suit :
@OneToMany(mappedBy="foo", orphanRemoval=true)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!