1. Pengenalan
Dalam tutorial ini, kita akan belajar bagaimana menyusun hasil pertanyaan dengan Spring Data.
Pertama, kita akan melihat skema data yang ingin membuat pertanyaan dan menyusun.
Dan kemudian, kami akan menyelami cara untuk mencapai Spring Data tersebut.
Mari kita mulakan!
2. Data Ujian
Di bawah ini terdapat beberapa contoh data. Walaupun kami telah menyatakannya di sini sebagai tabel, kami dapat menggunakan salah satu pangkalan data yang didukung oleh Spring Data untuk meneruskannya.
Pertanyaan yang ingin kita jawab adalah, "Siapa yang menempati tempat duduk di maskapai ini?" tetapi untuk menjadikannya lebih mesra pengguna, kami ingin menyusun mengikut nombor tempat duduk.
Nama pertama | Nama terakhir | Nombor tempat duduk |
---|---|---|
Jill | Smith | 50 |
Hawa | Jackson | 94 |
Fred | Blogg | 22 |
Ricki | Bobbie | 36 |
Siya | Kolisi | 85 |
3. Domain
Untuk membuat Spring Data Repository, kita perlu menyediakan kelas domain dan juga jenis id.
Di sini kami memodelkan penumpang kami sebagai entiti JPA, tetapi kami dapat dengan mudah memodelkannya sebagai dokumen MongoDB atau abstraksi model lain:
@Entity class Passenger { @Id @GeneratedValue @Column(nullable = false) private Long id; @Basic(optional = false) @Column(nullable = false) private String firstName; @Basic(optional = false) @Column(nullable = false) private String lastName; @Basic(optional = false) @Column(nullable = false) private int seatNumber; // constructor, getters etc. }
4. Menyusun dengan Data Spring
Kami mempunyai beberapa pilihan yang berbeza untuk disusun dengan Spring Data.
4.1. Menyusun Dengan Kata Kunci Kaedah OrderBy
Salah satu pilihan adalah menggunakan kaedah derivasi Spring Data di mana pertanyaan dihasilkan dari nama kaedah dan tandatangan.
Yang perlu kita lakukan di sini untuk menyusun data kita ialah memasukkan kata kunci OrderBy dalam nama kaedah kita bersama dengan nama harta tanah dan arah (Asc atau Desc) yang ingin kita urutkan .
Kami boleh menggunakan konvensyen ini untuk membuat pertanyaan yang mengembalikan penumpang kami mengikut urutan nombor tempat duduk:
interface PassengerRepository extends JpaRepository { List findByOrderBySeatNumberAsc(); }
Kami juga boleh menggabungkan kata kunci ini dengan semua nama kaedah Spring Data standard.
Mari kita lihat contoh kaedah yang mencari penumpang dengan nama belakang dan pesanan mengikut nombor tempat duduk:
List findByLastNameOrderBySeatNumberAsc(String lastName);
4.2. Menyusun dengan Parameter Isih
Pilihan kedua kami adalah untuk termasuk Jenis parameter menyatakan nama hartanah (s) dan arah yang mana kita mahu sort:
List passengers = repository.findAll(Sort.by(Sort.Direction.ASC, "seatNumber"));
Dalam kes ini, kami menggunakan kaedah findAll () dan menambahkan pilihan Sort ketika memanggilnya.
Kami juga dapat menambahkan parameter ini ke definisi kaedah baru:
List findByLastName(String lastName, Sort sort);
Akhirnya, jika mungkin kita sedang membuat pager , kita dapat menentukan jenis kita dalam objek yang dapat Halaman :
Page page = repository.findAll(PageRequest.of(0, 1, Sort.by(Sort.Direction.ASC, "seatNumber")));
5. Kesimpulan
Kami mempunyai dua pilihan mudah untuk menyusun data dengan Spring Data melalui kaedah derivasi menggunakan kata kunci OrderBy atau menggunakan objek Susun sebagai parameter kaedah.
Seperti biasa, anda boleh mendapatkan kod di GitHub.