Heim >Java >javaLernprogramm >Wie implementiert Hibernate polymorphe Zuordnung?
Die polymorphe Hibernate-Zuordnung kann geerbte Klassen der Datenbank zuordnen und bietet die folgenden Zuordnungstypen: verbundene Unterklasse: Erstellen Sie eine separate Tabelle für die Unterklasse, einschließlich aller Spalten der übergeordneten Klasse. Tabelle pro Klasse: Erstellen Sie eine separate Tabelle für Unterklassen, die nur unterklassenspezifische Spalten enthält. Union-Subclass: Ähnlich wie Joined-Subclass, aber die Tabelle der übergeordneten Klasse verbindet alle Spalten der Unterklasse.
Hibernate Polymorphic Mapping: Detaillierte Analyse
Einführung
Bei der objektorientierten Programmierung stoßen Sie normalerweise auf Situationen, in denen Sie geerbte Klassen der Datenbank zuordnen müssen. Hibernate kann diese Anforderung durch polymorphe Mapping-Funktionalität leicht erfüllen.
Polymorphe Zuordnungstypen
Hibernate bietet mehrere polymorphe Zuordnungstypen für die Handhabung von Beziehungen zwischen geerbten Klassen:
joined-subclass
, vereint jedoch alle Unterklassenspalten in der übergeordneten Klassentabelle. joined-subclass
类似,但在父类表中联合所有子类的列。实战案例
假设我们有一个抽象类 Person
,有两个子类 Student
和 Teacher
。Person
类有 id
和 name
字段,Student
类有 grade
字段,Teacher
类有 salary
字段。
Hibernate 映射配置
对于 Person
类:
@Entity @Inheritance(strategy = InheritanceType.JOINED) public abstract class Person { @Id private Long id; private String name; // ... 省略其他字段 }
对于 Student
类:
@Entity public class Student extends Person { private Integer grade; // ... 省略其他字段 }
对于 Teacher
Praktischer Fall
Angenommen, wir haben eine abstrakte Klasse Person
und zwei Unterklassen Student
und Teacher
. Die Klasse Person
hat die Felder id
und name
, die Klasse Student
hat die Felder note
-Feld, < Die Klasse code>Lehrer hat ein Feld Gehalt
.
Für die Klasse Person
:
@Entity public class Teacher extends Person { private Integer salary; // ... 省略其他字段 }Für die Klasse
Student
: Session session = sessionFactory.getCurrentSession(); List<Person> persons = session.createQuery("from Person", Person.class).list();
Teacher
: Hibernate lädt die Unterklassendaten automatisch gemäß der Vererbungsstrategie.
VorteileDas obige ist der detaillierte Inhalt vonWie implementiert Hibernate polymorphe Zuordnung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!