我正在使用spring-data-rest和JpaRepository
來創建Rest-Endpoints。默認情況下,對所有JpaRepository
啓用分頁,什麼是好事。但是我有一個遺留的應用程序,我們將它移植到不支持分頁的新堆棧。我想根據URL參數禁用分頁,以便仍然能夠在新的應用程序代碼中使用分頁。如何在spring-data-rest中禁用JpaRepository的分頁
我嘗試了各種方法來使用和不使用分頁露出資源:
- 使用
CrudRepository
:結果只能有一個未分頁端點和方法flush
丟失。 - 覆蓋我的知識庫接口中的
List<T> findAll()
方法,並使用RestResource
對其進行註釋。我本來期望該方法將作爲搜索方法公開,但事實並非如此。 - 註釋
Page<T> findAll(Pageable pageable)
與@RestResource(exported=false)
和註釋List<T> findAll()
如在之前的項目符號。我已經跳過,這取代了默認的方法。但無論如何,這並非有效的解決方案,因爲只有非分頁端點纔會暴露。 - 通行證
size=-1
獲得一個不受限制的結果 - >默認分頁大小用來
我已經看到了春天控制器RepositoryEntityController
使用RepositoryInvoker
來調用庫中的方法。 Pageable
使用PageableHandlerMethodArgumentResolver
解決,它總是返回一個可分頁(在查詢中指定,註釋或默認可分頁)。 我目前看到的唯一解決方案是實現自定義PageableHandlerMethodArgumentResolver
,如果傳遞自定義url參數,則返回null。
您是否知道其他解決方案或類似未來的計劃?
感謝, 米莎