Saya menggunakan data pegas dan DAO saya terlihat seperti
public interface StudentDAO extends JpaRepository<StudentEntity, Integer> {
public findAllOrderByIdAsc(); // I want to use some thing like this
}
Pada kode di atas, baris komentar menunjukkan maksud saya. Bisakah pegas Data menyediakan fungsionalitas bawaan untuk menggunakan metode seperti itu untuk menemukan semua catatan pesanan oleh beberapa kolom dengan ASC / DESC?
spring
spring-data
spring-data-jpa
Prashant Shilimkar
sumber
sumber
List<StudentEntity> findAllByOrderByIdAsc();
. Menambahkan jenis kembali dan menghapus pengubah publik yang berlebihan juga merupakan ide bagus;)By
sebelumOrderBy
kata kunci membuat semua perbedaan.By
di depanOrderBy
. The dokumentasi tidak memberitahu tentang hal itu .AFAIK, saya tidak berpikir ini mungkin dengan kueri penamaan metode langsung. Namun Anda dapat menggunakan mekanisme penyortiran bawaan, menggunakan
Sort
kelas. Repositori memilikifindAll(Sort)
metode yang dapat Anda gunakan untuk instanceSort
. Sebagai contoh:sumber
findAll()
dalam tipeCrudRepository<>
ini tidak berlaku untuk argumen (Sort)JpaRepository<>
jika Anda ingin menggunakan contoh di atas.Silakan lihat di Spring Data JPA - Documentation Referensi, bagian 5.3. Metode Pertanyaan , terutama pada bagian 5.3.2. Pembuatan Kueri , di " Tabel 3. Kata kunci yang didukung di dalam nama metode " (tautan pada 2019-05-03).
Saya pikir itu persis apa yang Anda butuhkan dan permintaan yang sama seperti yang Anda nyatakan harus bekerja ...
sumber
Cara sederhana:
Sumber: https://www.baeldung.com/spring-data-sorting
sumber
Ya, Anda dapat mengurutkan menggunakan metode kueri di Data Musim Semi.
Mis: pesanan naik atau turun dengan menggunakan nilai bidang id.
Kode:
solusi alternatif:
Penyortiran Data Musim Semi: Penyortiran
sumber
Saya mencoba dalam contoh ini untuk menunjukkan kepada Anda contoh lengkap untuk mempersonalisasi jenis OrderBy Anda
Anda akan menggunakan contoh ini: Metode untuk membangun secara dinamis objek yang disortir dari Sort:
sumber
Menggabungkan semua jawaban di atas, Anda dapat menulis kode yang dapat digunakan kembali dengan BaseEntity:
Objek DAO overload menemukan metode - pada dasarnya, masih menggunakan
findAll()
StudentEntity
memanjangBaseEntity
yang berisi bidang berulang (mungkin Anda juga ingin mengurutkan berdasarkan ID)Akhirnya, layanan dan penggunaan
SORT_BY_CREATED_AT_DESC
yang mungkin akan digunakan tidak hanya di InternetStudentService
.sumber