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

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

DDD
Lepaskan: 2024-11-04 03:08:30
asal
926 orang telah melayarinya

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

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

Gunakan antara muka untuk mendapatkan hasil:

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

Jika maklumat konteks diperlukan, gunakan Halaman sebagai jenis pemulangan:

public interface UserRepository extends Repository<User, Long> {

  Page<User> findByUsername(String username, Pageable pageable);
}
Salin selepas log masuk

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

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!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan