Jadual Kandungan
Laksanakan cache L2
Contoh
Output
Rumah Java javaTutorial Bagaimanakah cache tahap kedua Hibernate berfungsi?

Bagaimanakah cache tahap kedua Hibernate berfungsi?

Sep 14, 2023 pm 07:45 PM
Kerja hibernate Cache L2

Bagaimanakah cache tahap kedua Hibernate berfungsi?

Caching membantu mengurangkan panggilan rangkaian pangkalan data apabila melaksanakan pertanyaan.

Tahap 1 cache dan pemautan sesi. Ia dilaksanakan secara tersirat. Cache tahap 1 wujud sehingga objek sesi wujud. Sebaik sahaja objek sesi ditamatkan/ditutup akan ada Tiada objek cache. Cache tahap kedua berfungsi untuk berbilang objek sesi. ia dipautkan dengan kilang sesi. Objek cache peringkat kedua tersedia untuk semua sesi Kilang sesi tunggal. Objek cache ini akan ditamatkan apabila sesi tertentu berlaku Kilang tutup.

Laksanakan cache L2

Kita perlu menambah kebergantungan berikut untuk menggunakan cache tahap kedua.

<!-- https://mvnrepository.com/artifact/net.sf.ehcache/ehcache -->
<dependency>
   <groupId>net.sf.ehcache</groupId>
   <artifactId>ehcache</artifactId>
   <version>2.10.9.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-ehcache -->
<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-ehcache</artifactId>
   <version>5.4.32.Final</version>
</dependency>
Salin selepas log masuk

Nota- Nombor versi hibernate ehcache mestilah sama dengan nombor versi hibernate.

Kini kita perlu menambah fail konfigurasi hibernate yang akan membolehkan hibernate disambungkan Pangkalan data yang disediakan dan menggunakan cache tahap kedua.

<!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>
      //caching properties
      <property name="cache.use_second_level_cache">true</property>
      <property name="cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</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="academy.company.Parent"/>
   </session-factory>
</hibernate-configuration>
Salin selepas log masuk

Contoh

Secara lalai, semua entiti dalam java tidak dicache. Jadi, untuk mendayakan caching entiti, kami menggunakan anotasi @Cacheable dan @Cache dalam kelas entiti Induk -

import org.hibernate.annotations.CacheConcurrencyStrategy;
import javax.persistence.*;

@Entity
@Table( name = " Employee")
@Cacheable
@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class Parent {
   @Id
   @GeneratedValue(strategy = GenerationType.AUTO)
   Long id;
   @Column(name = "first_name")
   String firstName;
   @Column(name = "last_name")
   String lastName;
}
Now, let’s check whether second level cache works:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Main {
   public static void main(String[] args) {
      SessionFactory sessionFactory = new Configuration()
         .configure("academy/company/hibernate.cfg.xml")
         .buildSessionFactory();
      Session session1 = sessionFactory.openSession();
      Parent parent1 = session1.get(Parent.class, 4);
      System.out.println(parent1.id + " " + parent1.firstName + " " + parent1.lastName);
      session1.close();
      
      Session session2 = sessionFactory.openSession();
      Parent parent2 = session2.get(Parent.class, 4);
      System.out.println(parent2.id + " " + parent2.firstName + " " + parent2.lastName);
      session2.close();
   }
}
Salin selepas log masuk

Output

Hibernate: select parent0.id as id1, parent0.first_name as first_name1, parent0.last_name as last_name1 from Parent parent0 where parent0.id=?
1 Subash Chopra
1 Subash Chopra
Salin selepas log masuk

Daripada konsol kita dapat melihat dengan jelas bahawa hibernate hanya melaksanakan satu pertanyaan semasa sesi1. Kini, apabila session2 mengakses pertanyaan yang sama, ia tidak membuat panggilan rangkaian ke pangkalan data untuk melaksanakannya. Sebaliknya, kerana kami menggunakan cache tahap kedua, ia akan mendapat objek cache daripada session1.

Atas ialah kandungan terperinci Bagaimanakah cache tahap kedua Hibernate berfungsi?. 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)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu 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)

Apakah cache tahap pertama dan cache tahap kedua mybatis? Apakah cache tahap pertama dan cache tahap kedua mybatis? Jan 15, 2024 pm 01:44 PM

Cache peringkat pertama Mybatis didayakan secara lalai dan berada pada tahap SqlSession. Ini bermakna berbilang pertanyaan dalam SqlSession yang sama akan mengambil kesempatan daripada tahap caching ini. Cache peringkat pertama terutamanya menyimpan hasil pertanyaan. Apabila melaksanakan operasi pertanyaan, MyBatis akan menyimpan hubungan pemetaan antara pernyataan pemetaan dan hasil pertanyaan, serta data hasil pertanyaan dalam cache. Cache peringkat kedua mybatis adalah berbeza daripada cache peringkat pertama Cache peringkat kedua dikongsi di seluruh aplikasi, tidak seperti cache peringkat pertama dalam setiap SqlSession dan sebagainya.

Menganalisis mekanisme caching MyBatis: bandingkan ciri dan penggunaan cache peringkat pertama dan cache peringkat kedua Menganalisis mekanisme caching MyBatis: bandingkan ciri dan penggunaan cache peringkat pertama dan cache peringkat kedua Feb 25, 2024 pm 12:30 PM

Analisis mekanisme caching MyBatis: Perbezaan dan aplikasi cache peringkat pertama dan cache peringkat kedua Dalam rangka kerja MyBatis, caching ialah ciri yang sangat penting yang boleh meningkatkan prestasi operasi pangkalan data dengan berkesan. Antaranya, cache tahap pertama dan cache tahap kedua adalah dua mekanisme caching yang biasa digunakan dalam MyBatis. Artikel ini akan menganalisis perbezaan dan aplikasi cache peringkat pertama dan cache peringkat kedua secara terperinci, dan memberikan contoh kod khusus untuk digambarkan. 1. Cache Tahap 1 Cache tahap 1 juga dipanggil cache setempat Ia didayakan secara lalai dan tidak boleh dimatikan. Cache tahap pertama ialah SqlSes

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

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

Apakah pekerjaan yang boleh saya mohon pada tahun 2023 dengan kemahiran Java saya? Apakah pekerjaan yang boleh saya mohon pada tahun 2023 dengan kemahiran Java saya? Sep 21, 2023 am 11:41 AM

Apabila kita bercakap tentang bahasa pengaturcaraan dan pekerjaan, satu bahasa pengaturcaraan yang terlintas di fikiran kita ialah Java. Kebanyakan syarikat di seluruh dunia menggunakan Java. Ia popular dan terdapat banyak peluang pekerjaan. Jika anda ingin mendapatkan pekerjaan dengan bantuan kemahiran Java pada tahun 2023, maka ini bagus untuk anda kerana kemahiran Java boleh memberi anda pekerjaan dengan cepat. Selain itu, ia boleh memajukan kerjaya anda dengan cepat. Tiada silap mata yang akan membuatkan anda mencari pekerjaan dengan cepat. Tetapi kemahiran anda seperti sihir kepada anda. Pilih pekerjaan yang memuaskan hati anda dan persekitaran yang baik yang boleh meningkatkan kerjaya anda. Jika anda seorang pemula dan mempunyai pengalaman, Java juga memberikan anda pekerjaan yang baik. Banyak syarikat menggunakan Java sebagai program utama untuk pembangunan mereka. ia

Analisis tanggungjawab jurutera hadapan: Apakah tugas utama? Analisis tanggungjawab jurutera hadapan: Apakah tugas utama? Mar 25, 2024 pm 05:09 PM

Analisis tanggungjawab jurutera hadapan: Apakah tugas utama? Dengan perkembangan pesat Internet, jurutera hadapan memainkan peranan profesional yang sangat penting, memainkan peranan penting sebagai jambatan antara pengguna dan aplikasi laman web. Jadi, apakah yang sering dilakukan oleh jurutera hadapan? Artikel ini akan menganalisis tanggungjawab jurutera hadapan, mari kita ketahui. 1. Tanggungjawab asas jurutera bahagian hadapan Pembangunan dan penyelenggaraan laman web: Jurutera bahagian hadapan bertanggungjawab untuk pembangunan bahagian hadapan tapak web, termasuk menulis HTML, CSS dan JavaScr tapak web

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

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.

See all articles