如何使用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)!
答案 0 :(得分:2)
查询可以通过某处的注释来定义,也可以通过其他方式声明。查阅特定商店的文档以查找该商店的可用选项。如果存储库基础结构在引导时未找到该方法的声明查询,则它将失败。
您应该使用Spring Data Jpa方法。 Reference
Page<T> findAll(Pageable pageable);
请更改存储库类。
考试:
public interface GroupRepository extends JpaRepository<Group, Long> {
Page<Group> findAlll(Pageable pageable);
}