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.
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.
StrategienHibernate bietet drei Hauptstrategien zur Handhabung der Unterklassenidentifikation:
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!