2017-01-16 65 views
0

我需要使用PagingAndSortingRepository以获取元素列表。我也需要用RequestParam过滤这个列表。使用findAll PagingAndSortingRepository和筛选器

在控制器中,我有:

@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) {...} 

谢谢

+1

将它与'JpaSpecificationExecutor'结合起来...这可以让你定义一个'Specification'并将其与分页结合起来。 –

回答

2

假设 'AAA' 是一个字符串(用户名或smth),用Spring JPA PagingAndSortingRepository你可以这样做:

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

URL可能看起来像:/elements/aaa?page=pageNr&size=nrOfElemOnPage

它会在你的桌子迭代,选择aaa = aaaValue,把它们变成可分页

在我看来,这是一个更好,更洁净的形式给出的元素。

+0

是的,实际上我正在朝着这个方向努力,但我并不太热衷于Pageable类:它如何修复从请求中收到的页码和页面大小? 谢谢 – pacio14

+0

您可以使用方法(@PathVariable(“aaa”)String aaa,@RequestParam(value =“size”)字符串大小,@RequestParam(value =“page”)字符串页) –