我正在为我的服务实现分页,其中限制和偏移量是请求正文的一部分。当我在服务级别的 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!
这意味着你不能使用@Param
的Pageable
(或PageRequest
)和Sort
参数,它们被弹簧自动处理。
只需删除它@Param("pageRequest")
,它就会起作用。
提示:使用Pageable
接口而不是PageRequest
类。
紫衣仙女
TA贡献1839条经验 获得超15个赞
看起来失败的断言只是想让你要么拥有AllParamAnnotatedOrNone. 所以你会这样做:
public List<Student> getAll(@Param("studentRequest") StudentRequest studentRequest,
@Param("pageRequest") PageRequest pageRequest);
即使你没有使用它;您只需要一种模式(即命名为 Spring Data params)或另一种(即推断的 Spring Data param 名称)。
添加回答
举报
0/150
提交
取消