Sử dụng Keyset Pagination – Seek bằng  Blaze Persistence

Sử dụng Keyset Pagination – Seek bằng  Blaze Persistence

Nếu bạn chưa nghe về khái niệm này, có thể đọc ở đây http://213.35.113.17:9002/toi-uu-truy-van-pagination-phan-trang-su-dung-spring-boot-java/

 Blaze Persistence

Tuy nhiên bạn có thể sử dụng  Blaze Persistence để làm điều đó và có thể hoạt động plug-n-play với JPA luôn.

Tạo một CriteriaBuilderFactory

image 15 - quochung.cyou PTIT
Sử dụng Keyset Pagination - Seek bằng  Blaze Persistence 19

Lấy tập dữ liệu Top-N trên cùng

image 16 - quochung.cyou PTIT
Sử dụng Keyset Pagination - Seek bằng  Blaze Persistence 20

Để lấy trang đầu tiên, ta sử dụng một query Top-N như sau.

  • Bạn có thể tùy chỉnh orderByAsc để căn theo sort by tập dữ liệu cần có
  • pageSize quy định số lượng số phần tử cần lấy
  • withKeysetExtraction sẽ yêu cầu Blaze Persistence để lưu các thông số để có thể lấy dữ liệu cho query N phần tử tiếp theo
image 17 - quochung.cyou PTIT
Sử dụng Keyset Pagination - Seek bằng  Blaze Persistence 21
  • PagedList implement từ List có sẵn của Java, với một số hàm để bạn có thể extract dữ liệu
image 18 - quochung.cyou PTIT
Sử dụng Keyset Pagination - Seek bằng  Blaze Persistence 22

Output:

image 19 - quochung.cyou PTIT
Sử dụng Keyset Pagination - Seek bằng  Blaze Persistence 23

Lấy trang tiếp theo

image 20 - quochung.cyou PTIT
Sử dụng Keyset Pagination - Seek bằng  Blaze Persistence 24

  • Page tiếp theo sẽ sử dụng keysetPage ta đã có trước đó, để có thể thực hiện skip lượng row cần thiết để lấy tập dữ liệu tiếp theo

Thử nghiệm kết quả

image 22 - quochung.cyou PTIT
Sử dụng Keyset Pagination - Seek bằng  Blaze Persistence 25
  • Sử dụng cách tương tự để nhảy sang các trang kế tiếp
http://213.35.113.17:9002/trien-khai-cursor-pagination-trong-java-spring-jpa-hibernate

Tham khảo:

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply