Heim > Java > javaLernprogramm > Hauptteil

Was ist die „Owning Side' beim Object-Relational Mapping (ORM)?

Linda Hamilton
Freigeben: 2024-11-20 02:37:01
Original
788 Leute haben es durchsucht

What is the

Die „Owning Side“ im ORM Mapping verstehen

Im Object-Relational Mapping (ORM) bezieht sich das Konzept der „Owning Side“. an die Entität, die die Fremdschlüsselbeziehung in einer Datenbank verwaltet. Dies liegt daran, dass relationale Datenbanken im Gegensatz zur objektorientierten Programmierung von Natur aus keine bidirektionalen Beziehungen unterstützen.

Notwendigkeit einer besitzenden Seite

In ORM ist die besitzende Seite dafür verantwortlich Aufrechterhaltung der Integrität einer Beziehung durch Besitz des Fremdschlüssels, der die andere Entität in der Beziehung darstellt. Ohne eine besitzende Seite würde jede Seite der Beziehung einen Fremdschlüssel erfordern, was zu unnötigen Zuordnungstabellen und potenzieller Datenduplizierung führen würde.

Eigentum in verschiedenen Beziehungstypen

  • Eins-zu-Viele: Die besitzende Seite enthält normalerweise den Fremdschlüssel in der untergeordneten Tabelle, sodass mehrere Kinder einem einzelnen Elternteil zugeordnet werden können.
  • Eins-zu -Eins: Ähnlich wie bei Eins-zu-Viele hält die besitzende Seite den Fremdschlüssel, während die Nicht-Besitzseite das Attribut „mappedBy“ verwendet, um die Beziehung anzugeben.
  • Many-to- Eins: Die besitzende Seite hält den Fremdschlüssel, sodass mehrere Entitäten auf ein einzelnes übergeordnetes Element verweisen können.

Beispiel: Eins-zu-viele-Zuordnung mit besitzender Seite

Betrachten Sie das folgende Java-Beispiel:

@Entity
public class Person {
    @Id
    private Long id;
    @OneToMany(mappedBy = "person")
    private List<IdDocument> idDocuments;
}

@Entity
public class IdDocument {
    @Id
    private Long id;
    @ManyToOne
    private Person person;
}
Nach dem Login kopieren

In diesem Beispiel ist Person die besitzende Seite, da sie den Fremdschlüssel enthält, der auf die IdDocument-Tabelle verweist. Das Attribut „mappedBy“ in IdDocument gibt an, dass die Beziehung von der besitzenden Seite verwaltet wird.

Auswirkungen der Verwendung von „mappedBy“

Die Verwendung von „mappedBy“ auf der nicht besitzenden Seite verschiebt die Verantwortung von Verwaltung der Beziehung zur Eigentümerseite. Das bedeutet:

  • Die Fremdschlüsselaktualisierungen dürfen nur auf der Eigentümerseite durchgeführt werden (z. B. idDocument.setPerson(person)).
  • Hibernate verfolgt keine Änderungen an der Beziehung die nicht besitzende Seite (z. B. person.getIdDocuments().add(idDocument)).

Das obige ist der detaillierte Inhalt vonWas ist die „Owning Side' beim Object-Relational Mapping (ORM)?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage