emp;//Getters//Setters} sebuah jabatan"/> emp;//Getters//Setters} sebuah jabatan">
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 −
@Entity public class Dept { @Id private Long id; private String name; @OneToMany(mappedBy = "dep") private List<Employee> emp; //Getters //Setters }
Sesebuah jabatan boleh mempunyai seorang atau lebih pekerja, tetapi pekerja hanya boleh tergolong dalam satu jabatan.
@Entity public class Employee { @Id private Long id; private Integer joiningyear; @ManyToOne private Dept dep; //Getters //Setters }
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(); }
Pertanyaan di atas berfungsi dengan baik, tetapi menyimpan nilai dalam bentuk Senarai
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 }
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();
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!