Tôi đang sử dụng phần còn lại của dữ liệu vào mùa xuân với JpaRepository
để tạo Rest-Endpoints. Theo mặc định, phân trang được bật cho tất cả JpaRepository
, điều tốt là gì. Nhưng tôi có một ứng dụng kế thừa mà chúng tôi chuyển sang ngăn xếp mới không hỗ trợ phân trang. Tôi muốn tắt phân trang tùy thuộc vào URL-Tham số để vẫn có thể sử dụng phân trang trong mã ứng dụng mới.Cách tắt phân trang cho JpaRepository trong phần còn lại của dữ liệu vào mùa xuân
tôi đã cố gắng tiếp cận khác nhau để vạch trần các nguồn lực có và không có phân trang:
- Sử dụng
CrudRepository
: Kết quả chỉ có một thiết bị đầu cuối không có đánh số trang và phương phápflush
là mất tích. - Ghi đè phương thức
List<T> findAll()
trong giao diện lưu trữ của tôi và chú thích nó bằngRestResource
. Tôi đã có thể mong đợi rằng phương pháp sẽ được tiếp xúc như là phương pháp tìm kiếm, nhưng nó không phải là. - Chú thích
Page<T> findAll(Pageable pageable)
với@RestResource(exported=false)
và chú thíchList<T> findAll()
như trong dấu đầu dòng trước đó. Tôi đã hopped rằng điều này thay thế phương pháp mặc định. Nhưng đây không phải là giải pháp hợp lệ, bởi vì chỉ có một điểm cuối không phân trang được tiếp xúc. - đèo
size=-1
để có được một kết quả không giới hạn -> kích thước mặc định phân trang được sử dụng
I have seen that mùa xuân-controller RepositoryEntityController
sử dụng một RepositoryInvoker
để gọi các phương pháp trên kho. Pageable
được giải quyết bằng cách sử dụng PageableHandlerMethodArgumentResolver
luôn trả về một trang có thể xem được (được chỉ định trong truy vấn, chú thích hoặc mặc định có thể xem được). Giải pháp duy nhất mà tôi thấy trong thời điểm này là triển khai PageableHandlerMethodArgumentResolver
tùy chỉnh trả về giá trị rỗng, nếu thông số url tùy chỉnh được chuyển.
Bạn có biết bất kỳ giải pháp nào khác hoặc bất kỳ điều gì tương tự đã được lên kế hoạch cho tương lai không?
Cảm ơn, Micha