Mysql
 sql >> Base de données >  >> RDS >> Mysql

JPA + Hibernate :Comment définir une contrainte ayant ON DELETE CASCADE

JPA offre la possibilité de cascade opérations (fusionner, persister, actualiser, supprimer) aux entités associées. La logique est dans JPA et n'utilise pas les cascades de bases de données.

@OneToMany(cascade=CascadeType.REMOVE)

Il n'existe aucun moyen conforme à la norme JPA de créer des cascades avec des cascades de base de données. Si une telle cascade est préférée, nous devons nous rabattre sur la construction spécifique à Hibernate :@ En cas de suppression . Cela fonctionne avec @OneToMany au moins, mais il y avait des problèmes dans le passé avec @OneToOne et @OnDelete .

@OnDelete(action = OnDeleteAction.CASCADE)

Sachez que l'ajout de cette annotation à une contrainte existante ne la mettra pas à jour. Vous devrez peut-être d'abord le supprimer manuellement pour mettre à jour correctement le schéma.