Tôi đang sử dụng kho dữ liệu Spring mà không gặp bất kỳ sự cố nào. Khi tôi cố thêm Paging (sử dụng giao diện Pageable), nó hoạt động OK.Dữ liệu mùa xuân Hibernate + Có thể đếm được: Trả về kết quả trống
Tuy nhiên, khi tập kết quả trả về nhỏ hơn kích thước Trang, kết quả là Danh sách trống.
Sau đây là PageRequest của tôi. Các giá trị mặc định cho index và objectsPerPage tương ứng là 0 và 10.
new PageRequest(pageIndex_, objectsPerPage_, new Sort(orders))
Khi sử dụng truy vấn trả về dưới 10 kết quả, danh sách kết quả trống.
Đây là cách tôi sử dụng kho trong lớp dịch vụ:
repository.findAll(MySpecification.searchClients(criteria),
myPagingSpecification(criteria.getPageIndex(), criteria.getNumberPerPage(), null))
.getContent();
EDIT 1 tôi tìm ra nguyên nhân của việc này, tuy nhiên tôi vẫn đang tìm kiếm một giải pháp hoặc một workaround.
Long total = QueryUtils.executeCountQuery(getCountQuery(spec));
List<T> content = total > pageable.getOffset() ? query.getResultList() : Collections.<T> emptyList();
Mã này, nằm trong lớp SimpleJpaRepository
làm select count...
và nếu số lượng ít thì bù đắp, trả về một danh sách trống.
Cảm ơn bạn. Vấn đề là các tham số truy vấn từ các dịch vụ REST của tôi là 'page = 1' và tôi đã quên rằng các trang là 0 dựa, nhưng API của tôi thì không. –