Heim  >  Artikel  >  Java  >  Wie geht Hibernate mit der Identifizierung von Unterklassen um?

Wie geht Hibernate mit der Identifizierung von Unterklassen um?

WBOY
WBOYOriginal
2024-04-17 21:12:01667Durchsuche

Hibernate verwendet die Diskriminatorspalte zur Identifizierung von Unterklassen und bietet Strategien wie Vereinigungstabellen, Einzeltabellen und Klassenhierarchien: Vereinigungstabellen: Erstellen Sie separate Tabellen für jede Unterklasse. Einzelne Tabelle: Erstellen Sie eine Tabelle für alle Unterklassen, unterschieden durch die Diskriminatorspalte. Klassenhierarchie: Verwenden Sie die Basisklassentabelle zum Speichern der Attribute der übergeordneten Klasse und die Unterklassentabelle zum Speichern der Attribute der Unterklasse.

Hibernate 如何处理子类鉴别?

Wie Hibernate die Unterklassenidentifikation handhabt

Einführung

In der objektorientierten Programmierung werden Unterklassen häufig verwendet, um neue Funktionalität von einer Basisklasse abzuleiten. Hibernate bietet verschiedene Strategien für den Umgang mit der Objektvererbung, einschließlich Unionstabellen, Einzeltabellen und Klassenhierarchien.

Unterklassenidentifikation

Unterklassenidentifikation bezieht sich auf den Prozess der Bestimmung, um welche Unterklasse es sich bei einer bestimmten Entität handelt. Hibernate verwendet die Spalte „Diskriminator“, um Informationen zu speichern, die Unterklassen identifizieren.

Strategien

Hibernate bietet drei Hauptstrategien zur Handhabung der Unterklassenidentifikation:

    Vereinigungstabellen:
  • Erstellen Sie separate Tabellen für jede Unterklasse und verwenden Sie zusätzliche Spalten zum Speichern von Untertypinformationen.
  • Einzelne Tabelle:
  • Erstellen Sie eine Tabelle für alle Unterklassen und verwenden Sie die Diskriminatorspalte, um sie zu unterscheiden.
  • Klassenhierarchie:
  • Verwenden Sie die Basisklassentabelle zum Speichern der Attribute der übergeordneten Klasse und die Unterklassentabelle zum Speichern der Attribute der untergeordneten Klasse.
Praktischer Fall:

Angenommen, wir haben ein

. So handhaben Sie die Identifizierung von Unterkategorien mithilfe einer Einzeltabellenstrategie:

import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;

@Entity
@Table(name = "Person")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.STRING)
public class Person {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

}

@DiscriminatorValue("Student")
public class Student extends Person {
    private String grade;
}

@DiscriminatorValue("Employee")
public class Employee extends Person {

Das obige ist der detaillierte Inhalt vonWie geht Hibernate mit der Identifizierung von Unterklassen um?. 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