为了账号安全,请及时绑定邮箱和手机立即绑定

Spring Boot JPA 分页异常

Spring Boot JPA 分页异常

汪汪一只猫 2021-09-26 17:05:01
我正在为我的服务实现分页,其中限制和偏移量是请求正文的一部分。当我在服务级别的 PageRequest 中设置这些值时,我收到以下错误和实现Caused by: java.lang.IllegalArgumentException: Either use @Param on all parameters except Pageable and Sort typed once, or none at all!    at org.springframework.util.Assert.isTrue(Assert.java:92) ~[spring-core-4.3.12.RELEASE.jar:4.3.12.RELEASE]    at org.springframework.data.repository.query.Parameters.assertEitherAllParamAnnotatedOrNone(Parameters.java:297) ~[spring-data-commons-1.13.8.RELEASE.jar:na]    at org.springframework.data.repository.query.Parameters.<init>(Parameters.java:91) ~[spring-data-commons-1.13.8.RELEASE.jar:na]    at org.springframework.data.jpa.repository.query.JpaParameters.<init>(JpaParameters.java:43) ~[spring-data-jpa-1.11.8.RELEASE.jar:na]    at org.springframework.data.jpa.repository.query.JpaQueryMethod.createParameters(JpaQueryMethod.java:325) ~[spring-data-jpa-1.11.8.RELEASE.jar:na]    at org.springframework.data.jpa.repository.query.JpaQueryMethod.createParameters(JpaQueryMethod.java:53) ~[spring-data-jpa-1.11.8.RELEASE.jar:na]    at org.springframework.data.repository.query.QueryMethod.<init>(QueryMethod.java:77) ~[spring-data-commons-1.13.8.RELEASE.jar:na]    at org.springframework.data.jpa.repository.query.JpaQueryMethod.<init>(JpaQueryMethod.java:89) ~[spring-data-jpa-1.11.8.RELEASE.jar:na]学生要求:{  "name": "string",  "paging": {    "limit": 0,    "startOffset": 0  }}
查看完整描述

2 回答

?
慕桂英4014372

TA贡献1871条经验 获得超13个赞

检查错误:

use @Param on all parameters except Pageable and Sort typed once, or none at all!

这意味着你不能使用@ParamPageable(或PageRequest)和Sort参数,它们被弹簧自动处理。

只需删除它@Param("pageRequest"),它就会起作用。

提示:使用Pageable接口而不是PageRequest类。



查看完整回答
反对 回复 2021-09-26
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

看起来失败的断言只是想让你要么拥有AllParamAnnotatedOrNone. 所以你会这样做:


public List<Student> getAll(@Param("studentRequest") StudentRequest studentRequest, 

    @Param("pageRequest") PageRequest pageRequest);

即使你没有使用它;您只需要一种模式(即命名为 Spring Data params)或另一种(即推断的 Spring Data param 名称)。


查看完整回答
反对 回复 2021-09-26
  • 2 回答
  • 0 关注
  • 485 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信