Spring启动:如何在@RepositoryRestResource上配置分页?

thu*_*nki 6 pagination spring-data-jpa spring-data-rest spring-boot

我看过这个这个问题.但我仍然无法为存储库方法设置分页.不确定我是否受到了错误的影响,或者只是没有正确地写这个错误.基本上我在问是否有人可以提供一个如何在存储库方法上实现分页的示例,该方法通过@RepositoryRestResource注释导出?

我试图实现分页

@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRepository extends JpaRepository<User, Long> {

    Page<User> findByUserGroup(@Param("userGroup") String userGroup,
                                            @Param("page") Pageable pageable);

}
Run Code Online (Sandbox Code Playgroud)

代码生成的错误消息

Offending method public abstract org.springframework.data.domain.Page com.project.repository.UserRepository.findByUserGroup(java.lang.String,java.awt.print.Pageable)
Run Code Online (Sandbox Code Playgroud)

我也尝试删除可分页的方法参数,然后导致此错误:

Caused by: java.lang.IllegalArgumentException: Either use @Param on all parameters except Pageable and Sort typed once, or none at all!
Run Code Online (Sandbox Code Playgroud)

我在这个项目中使用的依赖项.

  1. Oracle java 8.
  2. "org.springframework.boot:弹簧引导gradle这个-插件:1.2.3.RELEASE"
  3. "org.springframework.boot:弹簧引导起动网"
  4. "org.springframework.boot:弹簧引导起动器"
  5. "org.springframework.boot:弹簧引导启动邮件",
  6. "org.springframework.boot:弹簧引导起动thymeleaf"
  7. "org.springframework.boot:春天开机起动的安全性",
  8. "org.springframework.security.oauth:弹簧安全的oauth2:2.0.0.RC2"
  9. "org.springframework.boot:弹簧引导起动数据JPA"
  10. "org.springframework.boot:春天开机起动数据休息",

任何帮助将不胜感激.

更新:最终解决方案

将此作为参考添加到其他任何想知道如何执行此操作的人.主要区别在于我必须确保导入正确的Pageable 对象,如所选答案中所述.

@RepositoryRestResource(collectionResourceRel = "users", path = "users")
public interface UserRepository extends JpaRepository<User, Long> {

    Page<User> findByUserGroup(@Param("userGroup") String userGroup, Pageable pageable);

}
Run Code Online (Sandbox Code Playgroud)

koe*_*koe 13

您正在使用错误包中的Pageable类:java.awt.print.Pageable.你应该使用org.springframework.data.domain.Pageable