Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengehadkan Hasil Pertanyaan dengan Anotasi dalam JPA Data Spring?

Bagaimana untuk Mengehadkan Hasil Pertanyaan dengan Anotasi dalam JPA Data Spring?

DDD
DDDasal
2024-11-04 03:08:30892semak imbas

How to Limit Query Results with Annotations in Spring Data JPA?

setMaxResults Anotasi untuk Spring-Data-JPA

Spring-Data-JPA, perpustakaan abstraksi repositori JPA yang berkuasa, memudahkan akses data dalam Spring aplikasi Java berasaskan. Walau bagaimanapun, menetapkan bilangan maksimum hasil yang dikembalikan oleh pertanyaan menggunakan anotasi telah menjadi satu cabaran.

Penyelesaian Spring Data JPA 1.7.0 (Evans Release Train)

Dalam Spring Data JPA 1.7.0 dan kemudian, keadaan telah bertambah baik. Anda kini boleh menggunakan kata kunci Teratas dan Pertama untuk menyekat hasil pertanyaan. Contohnya:

findTop10ByLastnameOrderByFirstnameAsc(String lastname);

Data Musim Bunga akan secara automatik mengehadkan bilangan hasil yang dikembalikan kepada nombor yang ditentukan (lalai kepada 1 jika ditinggalkan). Susunan keputusan menjadi penting, sama ada melalui klausa OrderBy atau parameter Isih dalam kaedah.

Sebelum Spring Data JPA 1.7.0

Sebelum peningkatan ini, mendapatkan semula kepingan data memerlukan penggunaan penomboran. Spring Data menggunakan antara muka boleh halaman untuk permintaan penomboran dan abstraksi Halaman untuk pengendalian hasil.

Laksanakan antara muka repositori seperti berikut:

public interface UserRepository extends Repository<User, Long> {

  List<User> findByUsername(String username, Pageable pageable);
}

Gunakan antara muka untuk mendapatkan hasil:

Pageable topTen = new PageRequest(0, 10);
List<User> result = repository.findByUsername("Matthews", topTen);

Jika maklumat konteks diperlukan, gunakan Halaman sebagai jenis pemulangan:

public interface UserRepository extends Repository<User, Long> {

  Page<User> findByUsername(String username, Pageable pageable);
}

Kod pelanggan boleh menggunakan maklumat ini:

Pageable topTen = new PageRequest(0, 10);
Page<User> result = repository.findByUsername("Matthews", topTen);
Assert.assertThat(result.isFirstPage(), is(true));

Menggunakan Halaman sebagai pemulangan jenis mencetuskan pelaksanaan pertanyaan unjuran kiraan untuk menentukan jumlah bilangan elemen. Selain itu, untuk menjamin hasil yang stabil, sentiasa sertakan maklumat pengisihan dalam PageRequest.

Atas ialah kandungan terperinci Bagaimana untuk Mengehadkan Hasil Pertanyaan dengan Anotasi dalam JPA Data Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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