Jadual Kandungan
Dept.java
Pekerja.java
CountEmployees.java
Rumah Java javaTutorial Bagaimana untuk menyesuaikan hasil pertanyaan JPA menggunakan fungsi agregat?

Bagaimana untuk menyesuaikan hasil pertanyaan JPA menggunakan fungsi agregat?

Sep 18, 2023 pm 04:49 PM
Sesuaikan fungsi agregat pertanyaan jpa

Bagaimana untuk menyesuaikan hasil pertanyaan JPA menggunakan fungsi agregat?

Kebanyakan masa, apabila kami menggunakan pertanyaan JPA, hasil yang diperoleh dipetakan kepada objek/jenis data tertentu. Tetapi apabila kami menggunakan fungsi agregat dalam pertanyaan, memproses keputusan kadangkala memerlukan kami menyesuaikan pertanyaan JPA.

Mari kita fahami (jabatan, pekerja) melalui contoh −

Dept.java

@Entity
public class Dept {
   @Id
   private Long id;
   private String name;
   @OneToMany(mappedBy = "dep")
   private List<Employee> emp;
   //Getters
   //Setters
}
Salin selepas log masuk

Sesebuah jabatan boleh mempunyai seorang atau lebih pekerja, tetapi pekerja hanya boleh tergolong dalam satu jabatan.

Pekerja.java

@Entity
public class Employee {
   @Id
   private Long id;
   private Integer joiningyear;
   @ManyToOne
   private Dept dep;
   
   //Getters
   //Setters
}
Salin selepas log masuk

Sekarang, jika kita ingin mendapatkan tarikh sertai dan bilangan pekerja dikumpulkan mengikut tarikh menyertai,

@Repository
public interface EmployeeRepository extends JpaRepository<Employee, Long> {
   // query methods
   @Query("SELECT e.joiningyear, COUNT(e.joiningyear) FROM Employee AS e GROUP BY e.joiningyear")
   List<Object[]> countEmployeesByJoiningYear();
}
Salin selepas log masuk

Pertanyaan di atas berfungsi dengan baik, tetapi menyimpan nilai dalam bentuk Senarai Sebaliknya, kita boleh menyesuaikan pertanyaan JPA untuk memetakan hasil pertanyaan di atas ke dalam kelas Java. Kelas Java ini hanyalah POJO ringkas (Objek Java Lama Biasa) dan tidak perlu dianotasi dengan @Entity.

Terjemahan bahasa Cina bagi

CountEmployees.java

ialah:

CountEmployees.java

package com.tutorialspoint;
public class CountEmployees {
   private Integer joinyear;
   private Long totalEmp;
   
   public CountEmployees(Integer joinyear, Long totalEmp) {
      this.joinyear = joinyear;
      this.totalEmp = totalEmp;
   }
   //Getters
   //Setters
}
Salin selepas log masuk

Kini, kami boleh menyesuaikan pertanyaan JPA kami seperti yang ditunjukkan di bawah −

@Query("SELECT new com.tutorialspoint.CountEmployees(e.joiningyear, COUNT(e.joiningyear)) " + "FROM Employee AS e GROUP BY e.joiningyear")
List<CountEmployees> countEmployeesByJoining();
Salin selepas log masuk

Hasil pertanyaan pilihan di atas akan dipetakan ke kelas CountEmployees. Dengan cara ini kita boleh menyesuaikan pertanyaan JPA dan memetakan hasilnya ke kelas java.

Atas ialah kandungan terperinci Bagaimana untuk menyesuaikan hasil pertanyaan JPA menggunakan fungsi agregat?. 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
3 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)

Perbezaan antara jumlah dan kiraan dalam oracle Perbezaan antara jumlah dan kiraan dalam oracle May 02, 2024 pm 11:09 PM

SUM dalam Oracle digunakan untuk mengira jumlah nilai bukan nol, manakala COUNT mengira bilangan nilai bukan nol semua jenis data, termasuk nilai pendua.

Apakah maksud kumpulan dalam sql Apakah maksud kumpulan dalam sql Apr 29, 2024 pm 02:48 PM

GROUP BY ialah fungsi agregat dalam SQL yang digunakan untuk mengumpulkan data berdasarkan lajur yang ditentukan dan melaksanakan operasi pengagregatan. Ia membenarkan pengguna untuk: Mengumpulkan baris data berdasarkan nilai lajur tertentu. Gunakan fungsi agregat (seperti jumlah, kiraan, purata) pada setiap kumpulan. Buat ringkasan bermakna daripada set data yang besar, lakukan pengagregatan dan pengelompokan data.

Cara menggunakan fungsi kiraan dalam oracle Cara menggunakan fungsi kiraan dalam oracle Apr 30, 2024 am 07:39 AM

Fungsi COUNT dalam Oracle digunakan untuk mengira nilai bukan nol dalam lajur atau ungkapan tertentu Sintaks ialah COUNT(DISTINCT <column_name>) atau COUNT(*), yang mengira bilangan nilai unik dan semua bukan. -nilai nol masing-masing.

Bagaimana untuk menggunakan purata dalam mysql Bagaimana untuk menggunakan purata dalam mysql May 01, 2024 pm 09:16 PM

Fungsi AVG() MySQL digunakan untuk mengira purata nilai berangka. Ia menyokong pelbagai kegunaan, termasuk: Kira kuantiti purata semua produk yang dijual: PILIH AVG(kuantiti_jualan) DARI jualan Hitung harga purata: AVG(harga) Kira purata volum jualan: AVG(kuantiti_harga *). Fungsi AVG() mengabaikan nilai NULL, gunakan IFNULL() untuk mengira purata nilai bukan nol.

Bagaimana untuk menulis fungsi kumpulan dalam mysql Bagaimana untuk menulis fungsi kumpulan dalam mysql Apr 29, 2024 am 04:30 AM

Fungsi kumpulan dalam MySQL digunakan untuk mengira nilai agregat dengan mengumpulkan set data. Fungsi yang biasa digunakan ialah: SUM: Kira jumlah nilai dalam lajur yang ditentukan COUNT: Kira bilangan nilai bukan NULL dalam lajur yang ditentukan AVG: Kira nilai purata nilai dalam lajur yang ditentukan MIN: Kira nilai minimum dalam lajur yang ditentukan MAX: Kira bilangan nilai bukan NULL dalam lajur yang ditentukan nilai maksimum

Bagaimana jumlah dalam sql dikira Bagaimana jumlah dalam sql dikira May 09, 2024 am 09:27 AM

Fungsi SQL SUM mengira jumlah set nombor dengan menambahkannya bersama-sama. Proses operasi termasuk: 1. Mengenal pasti nilai input 2. Menggelung nilai input dan menukarnya kepada nombor 3. Menambah setiap nombor untuk mengumpul hasil jumlah;

Bagaimana untuk menggunakan fungsi jumlah dalam sql Bagaimana untuk menggunakan fungsi jumlah dalam sql May 02, 2024 am 12:01 AM

Fungsi SUM() dalam SQL digunakan untuk mengira jumlah lajur berangka. Ia boleh mengira jumlah berdasarkan lajur, penapis, alias, pengelompokan dan pengagregatan berbilang lajur yang ditentukan, tetapi hanya mengendalikan nilai angka dan mengabaikan nilai NULL.

Apakah fungsi agregat dalam sql Apakah fungsi agregat dalam sql May 02, 2024 am 01:12 AM

Fungsi agregat dalam SQL digunakan untuk mengira dan mengembalikan nilai tunggal untuk set baris. Fungsi pengagregatan biasa termasuk: Fungsi pengagregatan berangka: COUNT(), SUM(), AVG(), MIN(), MAX() Fungsi pengagregatan set baris: GROUP_CONCAT(), FIRST(), LAST() Fungsi pengagregatan statistik: STDDEV ( ), VARIANCE() fungsi agregat pilihan: COUNT(DISTINCT), TOP(N)

See all articles