2017-03-21 21 views
0

我正在实现一个正常工作的API,但是当我使用pagitation时,这没有任何返回。为什么我的Pageable API不适用于Spring MVC?

我有我的版本库的代码:

public interface VinetaRepository extends JpaRepository<Vineta, Long> { 
List<Vineta> findAllByOrderByCreationdateDesc(); 
List<Vineta> findByTitulo(String titulo);} 

,当我使用下一个RequestMapping everthings是确定的:

@JsonView(VinetaView.class) 
@RequestMapping("/api/vinetas2/") 
public List<Vineta> getvinetas2(){ 
    return this.vinetarepository.findAll(); 
} 

但是,当我使用分页,我的API是returnin anything:

@JsonView(VinetaView.class) 
@RequestMapping(value = "/api/vinetaspage/", method= RequestMethod.GET) 
public Page<Vineta> getvinetaspage(Pageable page){ 
    //This System.out print all the size of my repository 
    System.out.println(this.vinetarepository.findAll().size()); 
    //This for print the title for my 20 first objects Vineta 
    for(Vineta v:this.vinetarepository.findAll(page)){ 
     System.out.println(v.getTitulo()); 
    } 
    // This print 20 
    System.out.println(this.vinetarepository.findAll(page).getSize()); 
    //This print the page number = 0 
    System.out.println(page.getPageNumber()); 
    //This print the page size = 20 
    System.out.println(page.getPageSize()); 

    //Finally, this is not returning nothing 
    return vinetarepository.findAll(page); 
} 

随着系统出,我可以看到我的查询的大小是相关的克(20),但没有任何回报。

这两个函数都使用相同的Jsonview,所以这个问题被丢弃。

+0

你调试检查什么在'vinetarepository.findAll(页)的要求' –

+0

我怀疑什么返回作用于你的看法?如果你的视图不知道如何处理后者,那么第一个方法返回一个'List'另一个'Page',它当然不会返回任何东西。 –

+0

你有没有找到解决这个问题的方法?我面对完全相同的问题。 –

回答

0

由于页面接口可能缺少功能,因此需要一个适配器类(如PageWrapper)来封装Spring Data Page界面。

公共类PageWrapper {

}

相关问题