Inhaltsverzeichnis
Tabelle für jede Klassenhierarchie
1. Entitätsklasse erstellen
Car.java
Sports_Car.java
Taxi_Car.java
2. Hibernate-Konfigurationsdatei (hibernate.cfg.xml)
3. Code zum Erstellen einer Tabelle und zum Speichern von Daten
MySQL-Tabelle
Heim Java javaLernprogramm Welche unterschiedlichen Vererbungszuordnungsstrategien gibt es in Hibernate?

Welche unterschiedlichen Vererbungszuordnungsstrategien gibt es in Hibernate?

Sep 12, 2023 pm 10:41 PM
策略 hibernate Vererbungszuordnung

Vererbungszuordnungsstrategien werden in drei Typen unterteilt:

  • Tabelle für jede Klassenhierarchie

  • Tabelle für jede konkrete Klasse

  • Tabellen für jede Unterklasse

    In diesem Artikel besprechen wir die Tabellenhierarchie für jede Klasse.

Tabelle für jede Klassenhierarchie

  • Hier erstellen Sie nur eine Tabelle für die Vererbungszuordnung. Der Nachteil dieses Ansatzes besteht darin, dass eine große Anzahl von Nullwerten in der Tabelle gespeichert wird.

  • @Inheritance(strategy=InheritanceType.SINGLE_TABLE), @DiscriminatorColumn und @DiscriminatorValue sind die in dieser Strategie verwendeten Anmerkungen.

  • @DiscriminatorColumn wird verwendet, um eine zusätzliche Spalte zu erstellen, die die Hierarchieklasse identifiziert.

Betrachten Sie das folgende Beispiel, um dies zu verstehen -

Welche unterschiedlichen Vererbungszuordnungsstrategien gibt es in Hibernate?

Implementierungsschritte -

  • Erstellen Sie Entitätsklassen und verwenden Sie entsprechende Annotationen dafür.

  • Schreiben Sie eine Konfigurationsdatei für den Ruhezustand und fügen Sie eine Zuordnungsklasse hinzu.

  • Schreiben Sie Code, um Daten zu erstellen und in Tabellen zu speichern.

1. Entitätsklasse erstellen

Car.java

package com.tutorialspoint;
@Entity
@Table(name = "car")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name="category",discriminatorType=DiscriminatorType.STRING)
@DiscriminatorValue(value="car")
public class Car {
   @Id
   @GeneratedValue(strategy=GenerationType.AUTO)
   private int id;

   @Column(name = "name")
   private String name;
   @Column(name = "color")
   private String color;
   //Getters
   //Setters
}
Nach dem Login kopieren

Sports_Car.java

package com.tutorialspoint;
import javax.persistence.*;
@Entity
@DiscriminatorValue("sportscar")
public class Sports_Car extends Car{
   @Column(name="mileage")
   private int mileage;

   @Column(name="cost")
   private int cost;
   //Getters
   //Setters
}
Nach dem Login kopieren

Taxi_Car.java

package com.tutorialspoint;
import javax.persistence.*;
@Entity
@DiscriminatorValue("taxicar")
public class Taxi_Car extends Car{
   @Column(name="farePerKm")
   private int farePerKm;

   @Column(name="available")
   private boolean available;
   //Getters
   //Setters
}
Nach dem Login kopieren

2. Hibernate-Konfigurationsdatei (hibernate.cfg.xml)

<!DOCTYPE hibernate-configuration PUBLIC
   "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
   "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
   <session-factory>
      <!-- JDBC Database connection settings -->
      <property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
      <property name="connection.url">jdbc:mysql://localhost:3306/demo?useSSL=false</property>
      <property name="connection.username">root</property>
      <property name="connection.password">root</property>
      <!-- JDBC connection pool settings ... using built-in test pool -->
      <property name="connection.pool_size">4</property>
      <!-- Echo the SQL to stdout -->
      <property name="show_sql">true</property>
      <!-- Select our SQL dialect -->
      <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
      <!-- Drop and re-create the database schema on startup -->
      <property name="hbm2ddl.auto">create-drop</property>
      <!-- name of annotated entity class -->
      <mapping class="com.tutorialspoint.Car"/>
      <mapping class="com.tutorialspoint.Sports_Car"/>
      <mapping class="com.tutorialspoint.Taxi_Car"/>
   </session-factory>
</hibernate-configuration>
Nach dem Login kopieren

3. Code zum Erstellen einer Tabelle und zum Speichern von Daten

package com.tutorialspoint;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class StoreTest {
   public static void main(String args[]){
      SessionFactory sessionFactory = new Configuration()
         .configure("com/tutorialspoint/hibernate.cfg.xml")
         .buildSessionFactory();
      Session session=sessionFactory.openSession();
      Transaction t=session.beginTransaction();
      Car c1=new Car();
      c1.setName("Mercedes");
      c1.setColor("Black");
      
      Sport_Car c2=new Sport_Car();
      c2.setName("Porsche");
      c2.setColor("Red");
      c2.setMileage(20);
      c2.setCost(5000000);
      
      Taxi_Car c3=new Taxi_Car();
      c3.setName("Innova");
      c3.setColor("White");
      c3.setFarePerKm(7);
      c3.setAvailable(true);
      
      session.persist(c1);
      session.persist(c2);
      session.persist(c3);
      
      t.commit();
      session.close();
   }
}
Nach dem Login kopieren

MySQL-Tabelle

Welche unterschiedlichen Vererbungszuordnungsstrategien gibt es in Hibernate?

Das obige ist der detaillierte Inhalt vonWelche unterschiedlichen Vererbungszuordnungsstrategien gibt es in Hibernate?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Kernpunkte der Preisstrategie und des Werbedesigns im PHP-Flash-Sale-System Kernpunkte der Preisstrategie und des Werbedesigns im PHP-Flash-Sale-System Sep 19, 2023 pm 02:18 PM

Kernpunkte der Preisstrategie und des Werbedesigns im PHP-Flash-Sale-System In einem Flash-Sale-System sind Preisstrategie und Werbedesign sehr wichtige Bestandteile. Angemessene Preisstrategien und gut gestaltete Werbeaktionen können Benutzer dazu bewegen, an Flash-Sale-Aktivitäten teilzunehmen und das Benutzererlebnis und die Rentabilität des Systems zu verbessern. Im Folgenden werden die wichtigsten Punkte der Preisstrategie und der Gestaltung von Werbeaktivitäten im PHP-Flash-Sale-System ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt. 1. Kernpunkte bei der Gestaltung der Preisstrategie: Bestimmen Sie den Benchmark-Preis: Im Flash-Sale-System bezieht sich der Benchmark-Preis auf den Preis des Produkts, wenn es normalerweise verkauft wird. existieren

So integrieren Sie Hibernate in ein SpringBoot-Projekt So integrieren Sie Hibernate in ein SpringBoot-Projekt May 18, 2023 am 09:49 AM

Hibernate in das SpringBoot-Projekt integrieren Vorwort Hibernate ist ein beliebtes ORM-Framework (Object Relational Mapping), das Java-Objekte Datenbanktabellen zuordnen kann, um Persistenzvorgänge zu erleichtern. Im SpringBoot-Projekt kann uns die Integration von Hibernate dabei helfen, Datenbankoperationen einfacher durchzuführen. In diesem Artikel wird die Integration von Hibernate in das SpringBoot-Projekt vorgestellt und entsprechende Beispiele bereitgestellt. 1.Abhängigkeiten einführenFügen Sie die folgenden Abhängigkeiten in die Datei pom.xml ein: org.springframework.bootspring-boot-starter-data-jpam

exe zu php: eine effektive Strategie zur Funktionserweiterung exe zu php: eine effektive Strategie zur Funktionserweiterung Mar 04, 2024 pm 09:36 PM

EXE zu PHP: Eine effektive Strategie zur Funktionserweiterung Mit der Entwicklung des Internets haben immer mehr Anwendungen begonnen, ins Web zu migrieren, um einen breiteren Benutzerzugriff und komfortablere Bedienung zu ermöglichen. Dabei steigt auch sukzessive der Bedarf, ursprünglich als EXE (ausführbare Dateien) ausgeführte Funktionen in PHP-Skripte umzuwandeln. In diesem Artikel wird erläutert, wie EXE in PHP konvertiert wird, um eine Funktionserweiterung zu erreichen, und es werden spezifische Codebeispiele gegeben. Warum EXE in PHP plattformübergreifend konvertieren: PHP ist eine plattformübergreifende Sprache

Astar-Absteckprinzip, Einkommensabbau, Airdrop-Projekte und -Strategien sowie Strategie auf Nanny-Ebene Astar-Absteckprinzip, Einkommensabbau, Airdrop-Projekte und -Strategien sowie Strategie auf Nanny-Ebene Jun 25, 2024 pm 07:09 PM

Inhaltsverzeichnis Astar Dapp Staking-Prinzip Staking-Einnahmen Abbau potenzieller Airdrop-Projekte: AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Staking-Strategie und -Betrieb „AstarDapp Staking“ wurde zu Beginn dieses Jahres auf die V3-Version aktualisiert, und es wurden viele Anpassungen an den Staking-Einnahmen vorgenommen Regeln. Derzeit ist der erste Absteckzyklus beendet und der Unterzyklus „Abstimmung“ des zweiten Absteckzyklus hat gerade erst begonnen. Um die „zusätzlichen Prämien“-Vorteile zu erhalten, müssen Sie diese kritische Phase (voraussichtlich bis zum 26. Juni dauernd, mit weniger als 5 verbleibenden Tagen) bewältigen. Ich werde die Astar-Einnahmen im Detail aufschlüsseln,

Java-Fehler: Ruhezustandsfehler, wie man damit umgeht und sie vermeidet Java-Fehler: Ruhezustandsfehler, wie man damit umgeht und sie vermeidet Jun 25, 2023 am 09:09 AM

Java ist eine objektorientierte Programmiersprache, die im Bereich der Softwareentwicklung weit verbreitet ist. Hibernate ist ein beliebtes Java-Persistenz-Framework, das eine einfache und effiziente Möglichkeit bietet, die Persistenz von Java-Objekten zu verwalten. Während des Entwicklungsprozesses treten jedoch häufig Hibernate-Fehler auf, die dazu führen können, dass das Programm abnormal beendet wird oder instabil wird. Der Umgang mit und die Vermeidung von Hibernate-Fehlern ist zu einer Fähigkeit geworden, die Java-Entwickler beherrschen müssen. In diesem Artikel werden einige gängige Hib vorgestellt

Vollständige Analyse der Installationsschritte und -strategien der CentOS7-Software Vollständige Analyse der Installationsschritte und -strategien der CentOS7-Software Jan 04, 2024 am 09:40 AM

Im Jahr 2010 begann ich, offiziell mit Linux in Kontakt zu kommen. Die Einstiegsdistribution war Ubuntu 10.10 und später wurde auf Ubunu 11.04 umgestellt. In dieser Zeit habe ich auch viele andere Mainstream-Distributionen ausprobiert. Nachdem ich das Labor betreten hatte, begann ich, CentOS5 zu verwenden, dann CentOS6 und jetzt hat es sich zu CentOS7 weiterentwickelt. Ich benutze Linux seit vier Jahren. Die ersten drei Jahre habe ich damit verbracht, herumzuspielen, viel Zeit zu verschwenden und viel Erfahrung und Lektionen zu sammeln. Vielleicht bin ich jetzt wirklich alt und möchte mich nicht mehr damit befassen. Ich hoffe nur, dass ich ein System nach der Konfiguration weiterhin verwenden kann. Warum diesen Artikel schreiben/lesen? Bei der Verwendung von Linux, insbesondere CentOS, werden Sie auf einige Fallstricke stoßen oder auf einige Dinge, die Menschen mit Mysophobie nicht tolerieren können: Software aus offiziellen Quellen

Was sind die Unterschiede zwischen Hibernate und Mybatis? Was sind die Unterschiede zwischen Hibernate und Mybatis? Jan 03, 2024 pm 03:35 PM

Die Unterschiede zwischen Hibernate und Mybatis: 1. Implementierungsmethode; 3. Vergleich der Objektverwaltung; Detaillierte Einführung: 1. Implementierungsmethode: Hibernate ist eine vollständige Objekt-/Relational-Mapping-Lösung, die Objekte Datenbanktabellen zuordnet, während MyBatis von Entwicklern das manuelle Schreiben von SQL-Anweisungen und ResultMap erfordert. 2. Leistung: Hibernate ist in Bezug auf die Entwicklungsgeschwindigkeit schneller MyBatis, weil Hibernate die DAO-Ebene usw. vereinfacht.

Was ist die Zuordnungsmethode für Eins-zu-Viele- und Viele-zu-Viele-Beziehungen in Java Hibernate? Was ist die Zuordnungsmethode für Eins-zu-Viele- und Viele-zu-Viele-Beziehungen in Java Hibernate? May 27, 2023 pm 05:06 PM

Hibernate ist ein hervorragendes ORM-Framework, das den Datenzugriff zwischen Java-Anwendungen und relationalen Datenbanken vereinfacht. In Hibernate können wir Eins-zu-Viele- und Viele-zu-Viele-Beziehungen verwenden, um komplexe Datenmodelle zu verarbeiten. Die Eins-zu-Viele-Beziehung von Hibernate In Hibernate bedeutet eine Eins-zu-Viele-Beziehung, dass eine Entitätsklasse mehreren anderen Entitätsklassen entspricht. Beispielsweise kann eine Bestellung mehreren Bestellpositionen (OrderItem) entsprechen, und ein Benutzer (User) kann mehreren Bestellungen (Order) entsprechen. Um eine Eins-zu-Viele-Beziehung in Hibernate zu implementieren, müssen Sie in der zu speichernden Entitätsklasse ein Sammlungsattribut definieren

See all articles