将findAll PagingAndSortingRepository与过滤器一起使用


问题内容

我需要使用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);
}

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

Page<Element> findElements(Pageable pageable) {...}

谢谢


问题答案:

假设’aaa’是一个字符串(用户名或smth),使用Spring JPA,PagingAndSortingRepository您可以执行以下操作:

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

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

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

我认为这是一个更好,更清洁的方法。