Bài đăng nổi bật

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); 

Post a Comment

أحدث أقدم