Table des matières
Tableau pour chaque hiérarchie de classes
1. Créer une classe d'entité
Voiture.java
Sports_Car.java
Taxi_Car.java
2. Fichier de configuration Hibernate (hibernate.cfg.xml)
3. Code pour créer une table et stocker des données
Table MySQL
Maison Java javaDidacticiel Quelles sont les différentes stratégies de mappage d'héritage dans Hibernate ?

Quelles sont les différentes stratégies de mappage d'héritage dans Hibernate ?

Sep 12, 2023 pm 10:41 PM
策略 hibernate cartographie de l'héritage

Les stratégies de cartographie des héritages sont divisées en trois types -

  • Tableau pour chaque hiérarchie de classe

  • Tableau pour chaque classe concrète

  • Tableaux pour chaque sous-classe

    Dans cet article, nous discuterons de la hiérarchie des tableaux pour chaque classe.

Tableau pour chaque hiérarchie de classes

  • Ici, créez une seule table pour le mappage d'héritage. L'inconvénient de cette approche est qu'un grand nombre de valeurs nulles sont stockées dans la table.

  • @Inheritance(strategy=InheritanceType.SINGLE_TABLE), @DiscriminatorColumn et @DiscriminatorValue sont les annotations utilisées dans cette stratégie.

  • @DiscriminatorColumn est utilisé pour créer une colonne supplémentaire qui identifie la classe hiérarchique.

Considérez l'exemple suivant pour comprendre cela -

Quelles sont les différentes stratégies de mappage dhéritage dans Hibernate ?

Étapes de mise en œuvre -

  • Créez des classes d'entités et utilisez les annotations appropriées pour elles.

  • Écrivez le fichier de configuration d'hibernation et ajoutez une classe de mappage.

  • Écrivez du code pour créer des données et les stocker dans des tableaux.

1. Créer une classe d'entité

Voiture.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
}
Copier après la connexion

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
}
Copier après la connexion

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
}
Copier après la connexion

2. Fichier de configuration Hibernate (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>
Copier après la connexion

3. Code pour créer une table et stocker des données

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();
   }
}
Copier après la connexion

Table MySQL

Quelles sont les différentes stratégies de mappage dhéritage dans Hibernate ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Points clés de la stratégie de prix et de la conception des promotions dans le système de vente flash PHP Points clés de la stratégie de prix et de la conception des promotions dans le système de vente flash PHP Sep 19, 2023 pm 02:18 PM

Points clés de la stratégie de prix et de la conception des promotions dans le système de vente flash PHP Dans un système de vente flash, la stratégie de prix et la conception des promotions sont des éléments très importants. Des stratégies de prix raisonnables et des promotions bien conçues peuvent inciter les utilisateurs à participer à des activités de vente flash et améliorer l'expérience utilisateur et la rentabilité du système. Ce qui suit présentera en détail les points clés de la stratégie de prix et de la conception des activités promotionnelles dans le système de vente flash PHP, et fournira des exemples de code spécifiques. 1. Points clés dans la conception d’une stratégie de prix : Déterminer le prix de référence : Dans le système de vente flash, le prix de référence fait référence au prix du produit lorsqu’il est normalement vendu. exister

Comment intégrer Hibernate dans le projet SpringBoot Comment intégrer Hibernate dans le projet SpringBoot May 18, 2023 am 09:49 AM

Intégration d'Hibernate dans le projet SpringBoot Préface Hibernate est un framework ORM (Object Relational Mapping) populaire qui peut mapper des objets Java à des tables de base de données pour faciliter les opérations de persistance. Dans le projet SpringBoot, l'intégration d'Hibernate peut nous aider à effectuer plus facilement des opérations de base de données. Cet article présentera comment intégrer Hibernate dans le projet SpringBoot et fournira des exemples correspondants. 1.Introduire les dépendancesIntroduire les dépendances suivantes dans le fichier pom.xml : org.springframework.bootspring-boot-starter-data-jpam

exe en php : une stratégie efficace pour réaliser l'expansion des fonctions exe en php : une stratégie efficace pour réaliser l'expansion des fonctions Mar 04, 2024 pm 09:36 PM

EXE vers PHP : une stratégie efficace pour étendre les fonctions. Avec le développement d'Internet, de plus en plus d'applications ont commencé à migrer vers le Web pour obtenir un accès utilisateur plus large et des opérations plus pratiques. Dans ce processus, la demande de conversion de fonctions initialement exécutées sous forme de fichiers EXE (fichiers exécutables) en scripts PHP augmente également progressivement. Cet article explique comment convertir EXE en PHP pour réaliser une extension fonctionnelle et donne des exemples de code spécifiques. Pourquoi convertir EXE en PHP multiplateforme : PHP est un langage multiplateforme

Principe de jalonnement Astar, démantèlement des revenus, projets et stratégies de largage aérien et stratégie opérationnelle au niveau de la nounou Principe de jalonnement Astar, démantèlement des revenus, projets et stratégies de largage aérien et stratégie opérationnelle au niveau de la nounou Jun 25, 2024 pm 07:09 PM

Table des matières Principe de jalonnement d'Astar Dapp Revenus de jalonnement Démantèlement des projets potentiels de largage aérien : AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Stratégie et fonctionnement du jalonnement "AstarDapp Staking" a été mis à niveau vers la version V3 au début de cette année, et de nombreux ajustements ont été apportés aux revenus de jalonnement règles. À l'heure actuelle, le premier cycle de jalonnement est terminé et le sous-cycle de « vote » du deuxième cycle de jalonnement vient de commencer. Pour bénéficier des avantages « récompense supplémentaire », vous devez franchir cette étape critique (qui devrait durer jusqu'au 26 juin, soit moins de 5 jours). Je vais détailler les revenus du staking Astar,

Erreurs Java : erreurs de mise en veille prolongée, comment les gérer et les éviter Erreurs Java : erreurs de mise en veille prolongée, comment les gérer et les éviter Jun 25, 2023 am 09:09 AM

Java est un langage de programmation orienté objet largement utilisé dans le domaine du développement de logiciels. Hibernate est un framework de persistance Java populaire qui fournit un moyen simple et efficace de gérer la persistance des objets Java. Cependant, des erreurs Hibernate sont souvent rencontrées au cours du processus de développement, et ces erreurs peuvent entraîner une fin anormale du programme ou devenir instable. Comment gérer et éviter les erreurs Hibernate est devenu une compétence que les développeurs Java doivent maîtriser. Cet article présentera quelques Hib courants

Analyse complète des étapes et stratégies d'installation du logiciel CentOS7 Analyse complète des étapes et stratégies d'installation du logiciel CentOS7 Jan 04, 2024 am 09:40 AM

J'ai commencé à entrer officiellement en contact avec Linux en 2010. La distribution d'entrée de gamme était Ubuntu10.10, puis je suis passée à Ubunu11.04. Au cours de cette période, j'ai également essayé de nombreuses autres distributions grand public. Après mon entrée au laboratoire, j'ai commencé à utiliser CentOS5, puis CentOS6, et maintenant j'ai évolué vers CentOS7. J'utilise Linux depuis quatre ans. Les trois premières années ont été consacrées à déconner, à perdre beaucoup de temps et à acquérir beaucoup d'expérience et de leçons. Peut-être que je suis vraiment vieux maintenant et que je ne veux plus m'en soucier. J'espère juste qu'après avoir configuré un système, je pourrai continuer à l'utiliser. Pourquoi écrire/lire cet article ? Lorsque vous utilisez Linux, en particulier CentOS, vous rencontrerez des pièges, ou des choses que les personnes atteintes de mysophobie ne peuvent tolérer : des logiciels provenant de sources officielles

Quelles sont les différences entre hiberner et mybatis Quelles sont les différences entre hiberner et mybatis Jan 03, 2024 pm 03:35 PM

Les différences entre hibernate et mybatis : 1. Méthode de mise en œuvre ; 2. Performances 3. Comparaison de la gestion des objets ; Introduction détaillée : 1. Méthode d'implémentation, Hibernate est une solution complète de mappage objet/relationnel qui mappe les objets aux tables de base de données, tandis que MyBatis oblige les développeurs à écrire manuellement des instructions SQL et ResultMap 2. Performances, Hibernate est possible en termes de vitesse de développement Plus rapide que ; MyBatis car Hibernate simplifie la couche DAO et ainsi de suite.

Quelle est la méthode de mappage des relations un-à-plusieurs et plusieurs-à-plusieurs dans Java Hibernate Quelle est la méthode de mappage des relations un-à-plusieurs et plusieurs-à-plusieurs dans Java Hibernate May 27, 2023 pm 05:06 PM

Hibernate un-à-plusieurs et plusieurs-à-plusieurs d'Hibernate est un excellent framework ORM qui simplifie l'accès aux données entre les applications Java et les bases de données relationnelles. Dans Hibernate, nous pouvons utiliser des relations un-à-plusieurs et plusieurs-à-plusieurs pour gérer des modèles de données complexes. Le un-à-plusieurs d'Hibernate Dans Hibernate, une relation un-à-plusieurs signifie qu'une classe d'entité correspond à plusieurs autres classes d'entités. Par exemple, une commande peut correspondre à plusieurs articles de commande (OrderItem), et un utilisateur (User) peut correspondre à plusieurs commandes (Order). Pour implémenter une relation un-à-plusieurs dans Hibernate, vous devez définir un attribut de collection dans la classe d'entité à stocker

See all articles