与春天靴子使用jpa的分页

时间:2017-04-14 09:12:54

标签: java jpa spring-boot spring-data-jpa

如何使用JpaRepository而不是PagingAndSortingRepository实现返回对象页面的方法?

我的存储库

public interface GroupRepository extends JpaRepository<Group, Long> {   
    @Query(value = "SELECT g FROM Group")
    Page<Group> listAllByPage(Pageable pageable);
}

我的服务实施:

@Override
public 
Page<Group> findGroupesByPagination(Pageable pageable) {
    return groupeRepository.listAllByPage(pageable);
}

我的休息控制器方法:

@RequestMapping(value="/groups", method = RequestMethod.GET)
public @ResponseBody Page<Group> list( Pageable pageable){
    Page<Group> groupes = groupeServiceImpl.findGroupesByPagination(pageable);
    return groupes;
}

最后我收到了这个错误:

  

创建名为'groupServiceImpl'的bean时出错:不满意   通过字段'groupeRepository'表示的依赖;嵌套   异常是org.springframework.beans.factory.BeanCreationException:   创建名为'groupRepository'的bean时出错:init的调用   方法失败;嵌套异常是java.lang.IllegalArgumentException:   查询方法公共摘要的验证失败   org.springframework.data.domain.Page   rimtrack.org.repository.GroupRepository.listAllByPage(org.springframework.data.domain.Pageable)!

1 个答案:

答案 0 :(得分:2)

  

查询可以通过某处的注释来定义,也可以通过其他方式声明。查阅特定商店的文档以查找该商店​​的可用选项。如果存储库基础结构在引导时未找到该方法的声明查询,则它将失败。

您应该使用Spring Data Jpa方法。 Reference

  Page<T> findAll(Pageable pageable);

请更改存储库类。

考试:

public interface GroupRepository extends JpaRepository<Group, Long> {   
  Page<Group> findAlll(Pageable pageable);
}