Sắp
xếp trong spring data jpa
Để sắp xếp trong spring data jpa ta có khá nhiều cách, ví dụ tìm
kiếm tất cả các đối tượng customer và sắp xếp theo thứ tự name giảm dần (DESC)
Đặt tên method (Query Creation)
List<Customer>
findAllByOrderByNameDesc();
Sử dụng câu query bên trong @Query
@Query("SELECT e FROM Customer e
ORDER BY e.name DESC")
List<Customer> findAll();
Sử dụng tham số Sort trong method:
@Query("SELECT e FROM Customer
e")
List<Customer> findAll(Sort sort);
Muốn sắp xếp như nào thì ta sửa tham số sort theo điều kiện đó, ở
đây sắp xếp theo name giảm dần sẽ là:
Sort sort =
Sort.by("name").descending();
Phân
trang trong spring data jpa
Để phân trang trong spring data jpa, trong method truy vấn, thay
vì trả về 1 stream hay 1 list thì tra trả về 1 page
Ví dụ:
@Query("SELECT e FROM Customer
e")
Page<Customer>
findCustomers(Pageable pageable);
Trong đó:
- Pageable sẽ chứa các
thông tin phân trang như số phần tử được lấy, vị trí trang được lấy
- Page sẽ chứa kết quả
trả về (gồm số phần tử, danh sách các phần tử)
- Pageable là 1 interface, để tạo nó ta sử dụng PageRequest
Ví dụ tạo pageable với thông tin là page thứ 1với 10 phần tử:
Pageable pageable = PageRequest.of(1,
10);
Ngoài ra bạn cũng có thể sắp xếp các phần tử trong page bằng cách
thêm tham số sort vào trong pageable:
Sort sort =
Sort.by("name").descending();
Pageable pageable = PageRequest.of(1, 10,
sort);
Đăng nhận xét