web-dev-qa-db-fra.com

Qu'est-ce qui se passe en cascade dans Hibernate?

Qu'est-ce que en cascade dans Hibernate? Il y a un attribut cascade que j'ai vu dans la balise map. À quoi cela sert-il?

Comme quoi cascade = all signifier? Il y a d'autres attributs que je lis comme
cascade="none|save-update|delete|all-delete-Orphan|delete-Orphan".

24
saplingPro

La cascade concerne les actions de persistance impliquant un objet se propageant à d'autres objets via une association. La mise en cascade peut s'appliquer à une variété d'actions Hibernate, et elle est généralement transitive. L'attribut "cascade = ..." de l'annotation qui définit l'association indique quelles actions doivent être mises en cascade pour cette association.

Cascade = "tous" signifie appliquer tous les types de cascade principaux. Depuis Hibernate 5.3, ces types sont:

  • "supprimer"/"supprimer",
  • "détacher"/"expulser",
  • "fusionner",
  • "fermer à clé",
  • "persister",
  • "rafraîchir",
  • "reproduire",
  • "save_update"/"update"

(Certains de ces noms de type en cascade sont anciens et/ou obsolètes.)

Il existe trois autres types de composés:

  • "all_delete_Orphan" - signifie la même chose que "all" plus l'activation de la suppression des entités qui sont orphelines par la cascade.
  • "delete_Orphan" - signifie "supprimer" plus la suppression orpheline.
  • "aucun" - signifie pas de cascade.
19
Stephen C

La mise en cascade est la façon dont Hibernate utilise le modèle de persistance transitive. La persistance transitive est une technique qui vous permet de propager automatiquement la persistance aux sous-graphiques transitoires (objet non encore enregistré dans la base de données) et détachés (objets enfants). Par exemple, un objet enfant nouvellement créé d'un objet parent déjà persistant doit devenir automatiquement persistant sans appel aux méthodes save () ou persist ().

La mise en cascade dans Hibernate a de nombreuses options telles que la mise à jour, la persistance, la fusion, la suppression, etc. Cascade = 'all' est un moyen d'appliquer toutes les options en cascade.

6
Prashant_M