将 findAll PagingAndSortingRepository 与过滤器结合使用

pac*_*o14 3 java spring spring-mvc spring-boot

我需要使用 PagingAndSortingRepository 来获取元素列表。我还需要使用 RequestParam 过滤此列表。

在控制器中我有:

@RequestMapping(path = "/listfilter", method = RequestMethod.GET)
public Page<Element> getElements(
        @RequestParam("page") int page,
        @RequestParam("size") int size,
        @RequestParam("aaa") String filter) {

    Filter filter = new Filter();
    filter.setPageNum(page);
    filter.setPageSize(size);
    filter.setAaa(aaa);

    return controller.findElements(filter);
}
Run Code Online (Sandbox Code Playgroud)

如何将过滤后的列表传递给方法

Page<Element> findElements(Pageable pageable) {...}
Run Code Online (Sandbox Code Playgroud)

谢谢

Ale*_*dis 5

假设 'aaa' 是一个字符串(用户名或其他),使用 Spring JPAPagingAndSortingRepository你可以这样做:

Page<Element> findAllByAaa(String aaaValue, Pageable pageable);

网址可能如下所示:/elements/aaa?page=pageNr&size=nrOfElemOnPage

它将在您的表上迭代,选择其中的元素aaa = aaaValue,将它们放入 Pageable 中

在我看来,这是一种更好、更干净的方法。