Heim  >  Artikel  >  Java  >  Was ist die „Owner Side' in bidirektionalen ORM-Beziehungen und warum ist sie wichtig?

Was ist die „Owner Side' in bidirektionalen ORM-Beziehungen und warum ist sie wichtig?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-24 16:44:10455Durchsuche

What is the

Die „Owning Side“ in ORM-Zuordnungen verstehen

Im Bereich der objektrelationalen Zuordnung (ORM) können bidirektionale Beziehungen zwischen Entitäten möglich sein stellen aufgrund der unidirektionalen Natur relationaler Datenbanken eine Herausforderung dar. Um dieses Problem anzugehen, führen ORMs das Konzept einer „Owning Side“ ein, das dazu dient, die Datenpersistenz zu rationalisieren und die referenzielle Integrität aufrechtzuerhalten.

Definition der Owning Side

In einer Bei der ORM-Zuordnung bezieht sich die besitzende Seite auf die Entität, die die Fremdschlüsselbeziehung innerhalb der Datenbank verwaltet. Das heißt, die besitzende Seite ist dafür verantwortlich, Änderungen am Fremdschlüssel in der zugehörigen Tabelle zu verfolgen und aufrechtzuerhalten.

Erklärung mit Zuordnungsbeispielen

Berücksichtigen Sie die folgenden Zuordnungsszenarien:

  • One-to-Many:In a Bei einer Eins-zu-viele-Beziehung enthält die besitzende Seite typischerweise die Sammlung verwandter Entitäten. Beispielsweise würde bei der Zuordnung zwischen einer Personenentität und einer Sammlung von IdDocument-Entitäten die Personenentität als besitzende Seite betrachtet.

    @Entity
    public class Person {
      @OneToMany(mappedBy="person")
      private List<IdDocument> idDocuments;
    }
    
    @Entity
    public class IdDocument {
      @ManyToOne
      private Person person;
    }
  • Eins-zu-Eins : Ähnlich wie bei der Eins-zu-Viele-Beziehung enthält bei einer Eins-zu-Eins-Zuordnung die besitzende Seite normalerweise den Verweis auf die zugehörige Entität. Da die Beziehung in diesem Fall eindeutig ist, kann jede Entität als besitzende Seite bezeichnet werden.

    @Entity
    public class Person {
      @OneToOne(mappedBy="person")
      private IdDocument idDocument;
    }
    
    @Entity
    public class IdDocument {
      @OneToOne
      private Person person;
    }
  • Viele-zu-Eins: In vielen Bei der 1:1-Zuordnung enthält die besitzende Seite normalerweise den Fremdschlüssel für die zugehörige Entität. Betrachten Sie eine Zuordnung zwischen einer Sammlung von Student-Entitäten und einer School-Entität. Die Student-Entität wäre die besitzende Seite und enthält einen Verweis auf die School-Entität.

    @Entity
    public class Student {
      @ManyToOne
      private School school;
    }
    
    @Entity
    public class School {
      @OneToMany(mappedBy="school")
      private List<Student> students;
    }

Konsequenzen der Zuordnung ohne besitzende Seite

Wenn die besitzende Seite nicht explizit in einer bidirektionalen Beziehung deklariert ist, erstellt Hibernate eine dritte Zuordnungstabelle, um die Zuordnung zu erleichtern. Dies kann zu einer Zunahme unnötiger Tabellen führen und die Datenbankleistung beeinträchtigen.

Fazit

Das Verständnis des Konzepts der besitzenden Seite ist für eine effektive ORM-Zuordnung von entscheidender Bedeutung. Durch die korrekte Benennung der Eigentümerseite können Entwickler eine effiziente Datenpersistenz sicherstellen und potenzielle Probleme mit der Datenintegrität vermeiden.

Das obige ist der detaillierte Inhalt vonWas ist die „Owner Side' in bidirektionalen ORM-Beziehungen und warum ist sie wichtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn