Maison > Java > javaDidacticiel > le corps du texte

Comment « MappedBy » dans JPA et Hibernate empêche-t-il les incohérences de données dans les relations bidirectionnelles ?

Barbara Streisand
Libérer: 2024-11-01 12:14:30
original
653 Les gens l'ont consulté

How Does `MappedBy` in JPA and Hibernate Prevent Data Inconsistencies in Bi-directional Relationships?

Comprendre MappedBy dans JPA et Hibernate

Dans le mappage objet-relationnel (ORM), les relations bidirectionnelles entre entités nécessitent une gestion minutieuse pour éviter des boucles infinies ou des états de données incohérents . MappedBy est un attribut dans les annotations JPA et Hibernate qui résout ce problème.

Comprendre le rôle de MappedBy :

MappedBy spécifie quelle entité possède la relation et possède la clé étrangère colonne dans la base de données. Il est appliqué à l'annotation de mappage de l'entité non propriétaire, indiquant que la relation est mappée par la clé étrangère dans la table de l'entité propriétaire.

Recommandations d'utilisation :

Quand définissant une relation bidirectionnelle, il est recommandé de suivre ces directives :

  • Identifier l'entité propriétaire.
  • Ajouter l'annotation @JoinColumn au mappage de l'entité propriétaire, en spécifiant la clé étrangère column.
  • Ajoutez l'annotation @JoinTable si vous avez besoin d'une table de jointure entre les entités.
  • Appliquez l'annotation @MappedBy au mappage de l'entité non propriétaire, en faisant référence au nom du champ de mappage de l'entité propriétaire.

Exemple :

Dans vos entités Airline et AirlineFlight, Airline doit être le propriétaire de la relation. Les annotations correctes seraient :

<code class="java">// Airline.java
@OneToMany(mappedBy = "airline")
public Set<AirlineFlight> getAirlineFlights() { return airlineFlights; }

// AirlineFlight.java
@ManyToOne
@JoinColumn(name = "IDAIRLINE")
public Airline getAirline() { return airline; }</code>
Copier après la connexion

Objectif de MappedBy :

MappedBy sert deux objectifs principaux :

  • Spécifie l'entité propriétaire dans une relation bidirectionnelle, empêchant la duplication de clé étrangère.
  • Permet de parcourir la relation depuis l'une ou l'autre entité sans créer de boucle récursive ou d'autres problèmes d'incohérence des données.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal