Maison > Java > javaDidacticiel > Qu'est-ce que le « côté propriétaire » dans les relations bidirectionnelles ORM et pourquoi est-il important ?

Qu'est-ce que le « côté propriétaire » dans les relations bidirectionnelles ORM et pourquoi est-il important ?

Patricia Arquette
Libérer: 2024-11-24 16:44:10
original
518 Les gens l'ont consulté

What is the

Comprendre le « côté propriétaire » dans les mappages ORM

Dans le domaine du mappage objet-relationnel (ORM), les relations bidirectionnelles entre les entités peuvent posent un défi en raison de la nature unidirectionnelle des bases de données relationnelles. Pour résoudre ce problème, les ORM introduisent le concept de « côté propriétaire », qui sert à rationaliser la persistance des données et à maintenir l'intégrité référentielle.

Définition du côté propriétaire

Dans un Mappage ORM, le côté propriétaire fait référence à l'entité qui gère la relation de clé étrangère au sein de la base de données. Autrement dit, le côté propriétaire est responsable du suivi et de la maintenance des modifications apportées à la clé étrangère dans la table associée.

Explication avec des exemples de mappage

Considérez les scénarios de mappage suivants :

  • Un à plusieurs : Dans un relation un-à-plusieurs, le côté propriétaire contient généralement la collection d’entités liées. Par exemple, dans le mappage entre une entité Person et une collection d'entités IdDocument, l'entité Person serait considérée comme le côté propriétaire.

    @Entity
    public class Person {
      @OneToMany(mappedBy="person")
      private List<IdDocument> idDocuments;
    }
    
    @Entity
    public class IdDocument {
      @ManyToOne
      private Person person;
    }
    Copier après la connexion
  • One-to-One : Semblable à la relation un-à-plusieurs, dans un mappage un-à-un, le côté propriétaire contient généralement la référence à l'entité associée. Dans ce cas, puisque la relation est unique, l'une ou l'autre entité peut être désignée comme partie propriétaire.

    @Entity
    public class Person {
      @OneToOne(mappedBy="person")
      private IdDocument idDocument;
    }
    
    @Entity
    public class IdDocument {
      @OneToOne
      private Person person;
    }
    Copier après la connexion
  • Plusieurs-à-Un : Dans plusieurs -à un mappage, le côté propriétaire contient généralement la clé étrangère de l'entité associée. Considérons un mappage entre une collection d’entités Étudiant et une entité École. L'entité Étudiant serait le côté propriétaire, contenant une référence à l'entité École.

    @Entity
    public class Student {
      @ManyToOne
      private School school;
    }
    
    @Entity
    public class School {
      @OneToMany(mappedBy="school")
      private List<Student> students;
    }
    Copier après la connexion

Conséquences du mappage sans côté propriétaire

Si le côté propriétaire n'est pas explicitement déclaré dans une relation bidirectionnelle, Hibernate créera une troisième table d'association pour faciliter le mappage. Cela peut conduire à une prolifération de tables inutiles et avoir un impact sur les performances de la base de données.

Conclusion

Comprendre le concept de côté propriétaire est crucial pour un mappage ORM efficace. En désignant correctement le côté propriétaire, les développeurs peuvent garantir une persistance efficace des données et éviter d'éventuels problèmes d'intégrité 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