Jadual Kandungan
Jadual untuk setiap hierarki kelas
1. Buat kelas entiti
Car.java
Kereta_Sukan.java
Teksi_Car.java
2. Fail konfigurasi hibernate (hibernate.cfg.xml)
3. Kod untuk membuat jadual dan menyimpan data
Jadual MySQL
Rumah Java javaTutorial Apakah strategi pemetaan warisan yang berbeza dalam Hibernate?

Apakah strategi pemetaan warisan yang berbeza dalam Hibernate?

Sep 12, 2023 pm 10:41 PM
Strategi hibernate pemetaan warisan

Strategi pemetaan warisan terbahagi kepada tiga jenis -

  • Jadual untuk setiap hierarki kelas

  • Meja untuk setiap kelas konkrit

  • Jadual untuk setiap subkelas

    Dalam artikel ini, kita akan membincangkan hierarki jadual untuk setiap kelas.

Jadual untuk setiap hierarki kelas

  • Di sini, buat hanya satu jadual untuk pemetaan warisan. Kelemahan pendekatan ini ialah sejumlah besar nilai nol disimpan dalam jadual.

  • @Inheritance(strategy=InheritanceType.SINGLE_TABLE), @DiscriminatorColumn dan @DiscriminatorValue ialah anotasi yang digunakan dalam strategi ini.

  • @DiscriminatorColumn digunakan untuk membuat lajur tambahan yang mengenal pasti kelas hierarki.

Pertimbangkan contoh berikut untuk memahami perkara ini -

Apakah strategi pemetaan warisan yang berbeza dalam Hibernate?

Langkah pelaksanaan -

  • Buat kelas entiti dan gunakan anotasi yang sesuai untuk mereka.

  • Tulis fail konfigurasi hibernate dan tambah kelas pemetaan.

  • Tulis kod untuk mencipta data dan menyimpannya dalam jadual.

1. Buat kelas entiti

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
}
Salin selepas log masuk

Kereta_Sukan.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
}
Salin selepas log masuk

Teksi_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
}
Salin selepas log masuk

2. Fail konfigurasi 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>
Salin selepas log masuk

3. Kod untuk membuat jadual dan menyimpan data

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();
   }
}
Salin selepas log masuk

Jadual MySQL

Apakah strategi pemetaan warisan yang berbeza dalam Hibernate?

Atas ialah kandungan terperinci Apakah strategi pemetaan warisan yang berbeza dalam Hibernate?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perkara utama strategi harga dan reka bentuk promosi dalam sistem jualan kilat PHP Perkara utama strategi harga dan reka bentuk promosi dalam sistem jualan kilat PHP Sep 19, 2023 pm 02:18 PM

Perkara utama strategi harga dan reka bentuk promosi dalam sistem jualan kilat PHP Dalam sistem jualan kilat, strategi harga dan reka bentuk promosi adalah bahagian yang sangat penting. Strategi harga yang berpatutan dan promosi yang direka dengan baik boleh menarik pengguna untuk menyertai aktiviti jualan kilat dan meningkatkan pengalaman pengguna dan keuntungan sistem. Perkara berikut akan memperkenalkan perkara utama strategi harga dan reka bentuk aktiviti promosi dalam sistem jualan kilat PHP secara terperinci, dan memberikan contoh kod khusus. 1. Perkara utama dalam reka bentuk strategi harga: Tentukan harga penanda aras: Dalam sistem jualan kilat, harga penanda aras merujuk kepada harga produk apabila ia biasanya dijual. wujud

Bagaimana untuk mengintegrasikan Hibernate dalam projek SpringBoot Bagaimana untuk mengintegrasikan Hibernate dalam projek SpringBoot May 18, 2023 am 09:49 AM

Mengintegrasikan Hibernate dalam SpringBoot Project Preface Hibernate ialah rangka kerja ORM (Object Relational Mapping) yang popular yang boleh memetakan objek Java ke jadual pangkalan data untuk memudahkan operasi kegigihan. Dalam projek SpringBoot, menyepadukan Hibernate boleh membantu kami melaksanakan operasi pangkalan data dengan lebih mudah Artikel ini akan memperkenalkan cara untuk menyepadukan Hibernate dalam projek SpringBoot dan memberikan contoh yang sepadan. 1.Perkenalkan dependenciesPerkenalkan dependencies berikut dalam fail pom.xml: org.springframework.bootspring-boot-starter-data-jpam

exe ke php: strategi yang berkesan untuk mencapai pengembangan fungsi exe ke php: strategi yang berkesan untuk mencapai pengembangan fungsi Mar 04, 2024 pm 09:36 PM

EXE ke PHP: Strategi yang berkesan untuk mencapai pengembangan fungsi Dengan pembangunan Internet, semakin banyak aplikasi telah mula berhijrah ke web untuk mencapai akses pengguna yang lebih luas dan operasi yang lebih mudah. Dalam proses ini, permintaan untuk menukar fungsi yang asalnya dijalankan sebagai EXE (fail boleh laku) ke dalam skrip PHP juga meningkat secara beransur-ansur. Artikel ini akan membincangkan cara menukar EXE kepada PHP untuk mencapai pengembangan berfungsi, dan memberikan contoh kod khusus. Mengapa Menukar EXE kepada PHP Cross-Platformness: PHP ialah bahasa merentas platform

Prinsip pertaruhan Astar, pembongkaran pendapatan, projek dan strategi airdrop & strategi peringkat pengasuh operasi Prinsip pertaruhan Astar, pembongkaran pendapatan, projek dan strategi airdrop & strategi peringkat pengasuh operasi Jun 25, 2024 pm 07:09 PM

Jadual Kandungan Prinsip Staking Astar Dapp Staking Hasil Pembongkaran Projek Airdrop Berpotensi: AlgemNeurolancheHealthreeAstar Degens DAOVeryLongSwap Staking Strategi & Operasi "AstarDapp Staking" telah dinaik taraf kepada versi V3 pada awal tahun ini, dan banyak pelarasan telah dibuat pada staking peraturan. Pada masa ini, kitaran pertaruhan pertama telah tamat, dan kitaran kecil "pengundian" kitaran pertaruhan kedua baru sahaja bermula. Untuk mendapatkan faedah "ganjaran tambahan", anda perlu memahami peringkat kritikal ini (dijangka akan berlangsung sehingga 26 Jun, berbaki kurang daripada 5 hari). Saya akan memecahkan pendapatan pertaruhan Astar secara terperinci,

Ralat Java: Ralat Hibernate, Cara Mengendalikan dan Mengelak Ralat Java: Ralat Hibernate, Cara Mengendalikan dan Mengelak Jun 25, 2023 am 09:09 AM

Java ialah bahasa pengaturcaraan berorientasikan objek yang digunakan secara meluas dalam bidang pembangunan perisian. Hibernate ialah rangka kerja kegigihan Java yang popular yang menyediakan cara yang mudah dan cekap untuk mengurus kegigihan objek Java. Walau bagaimanapun, ralat Hibernate sering ditemui semasa proses pembangunan, dan ralat ini boleh menyebabkan atur cara ditamatkan secara tidak normal atau menjadi tidak stabil. Cara mengendalikan dan mengelakkan ralat Hibernate telah menjadi kemahiran yang mesti dikuasai oleh pembangun Java. Artikel ini akan memperkenalkan beberapa Hib biasa

Analisis penuh langkah dan strategi pemasangan perisian CentOS7 Analisis penuh langkah dan strategi pemasangan perisian CentOS7 Jan 04, 2024 am 09:40 AM

Saya mula berhubung secara rasmi dengan Linux pada tahun 2010. Pengedaran peringkat permulaan ialah Ubuntu10.10, dan kemudiannya beralih kepada Ubunu11.04 Dalam tempoh ini, saya juga mencuba banyak pengedaran arus perdana yang lain. Selepas memasuki makmal, saya mula menggunakan CentOS5, kemudian CentOS6, dan kini ia telah berkembang kepada CentOS7. Saya telah menggunakan Linux selama empat tahun. Tiga tahun pertama dihabiskan dengan bermain-main, membuang banyak masa, dan memperoleh banyak pengalaman dan pelajaran. Mungkin saya benar-benar tua sekarang dan tidak lagi mahu bersusah payah dengannya. Saya hanya berharap selepas mengkonfigurasi sistem, saya boleh terus menggunakannya. Mengapa menulis/membaca artikel ini Apabila menggunakan Linux, terutamanya CentOS, anda akan menghadapi beberapa perangkap, atau beberapa perkara yang tidak boleh diterima oleh orang yang mempunyai mysophobia: perisian daripada sumber rasmi

Apakah perbezaan antara hibernate dan mybatis Apakah perbezaan antara hibernate dan mybatis Jan 03, 2024 pm 03:35 PM

Perbezaan antara hibernate dan mybatis: 1. Kaedah pelaksanaan 2. Prestasi 3. Perbandingan pengurusan objek; Pengenalan terperinci: 1. Kaedah pelaksanaan, Hibernate ialah penyelesaian pemetaan objek/hubungan yang lengkap yang memetakan objek ke jadual pangkalan data, manakala MyBatis memerlukan pembangun menulis pernyataan SQL dan ResultMap secara manual 2. Prestasi, Hibernate adalah mungkin dari segi kelajuan pembangunan Lebih cepat daripada MyBatis kerana Hibernate memudahkan lapisan DAO dan sebagainya.

Apakah kaedah pemetaan hubungan satu-ke-banyak dan banyak-ke-banyak dalam Java Hibernate Apakah kaedah pemetaan hubungan satu-ke-banyak dan banyak-ke-banyak dalam Java Hibernate May 27, 2023 pm 05:06 PM

Hibernate satu-ke-banyak dan banyak-ke-banyak Hibernate ialah rangka kerja ORM yang sangat baik yang memudahkan akses data antara aplikasi Java dan pangkalan data hubungan. Dalam Hibernate, kita boleh menggunakan perhubungan satu-ke-banyak dan banyak-ke-banyak untuk mengendalikan model data yang kompleks. Satu-ke-banyak Hibernate Dalam Hibernate, hubungan satu-dengan-banyak bermakna satu kelas entiti sepadan dengan berbilang kelas entiti lain. Sebagai contoh, pesanan boleh sepadan dengan berbilang item pesanan (OrderItem), dan pengguna (Pengguna) boleh sepadan dengan berbilang pesanan (Pesanan). Untuk melaksanakan perhubungan satu-ke-banyak dalam Hibernate, anda perlu menentukan atribut koleksi dalam kelas entiti untuk disimpan

See all articles