You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring REST API仅传必填参数却提示JPA查询参数数量不匹配如何解决?

问题原因

你的报错和接口的两个可选参数完全无关,问题出在JPA Repository的方法定义错误:
Spring Data JPA中,分页参数需要声明为Pageable类型,你当前写的PageRequest会被识别为普通的查询条件参数,JPA会尝试将它也拼接到WHERE查询语句中。你的查询逻辑只需要匹配referrerUserId一个字段,但是方法传入了2个参数(referrerUserId+PageRequest),所以触发了参数数量不匹配的异常。

解决方案

修改RewardEntityRepository中方法的第二个参数类型为Pageable即可,无需修改其他代码:

public interface RewardEntityRepository extends JpaRepository<RewardEntity, Long> {
    // 仅将第二个参数从PageRequest改为Pageable
    List<RewardEntity> findAllByReferrerUserId(Long referrerUserId, Pageable pageable);
}

如果需要返回分页总条数、总页数等信息,也可以将返回值改为Page<RewardEntity>,更符合分页查询的使用习惯。

补充说明

你定义的GET接口参数逻辑完全正确,两个可选参数的默认值会正常生效,不传时默认按第0页、每页10条返回数据。

内容的提问来源于stack exchange,提问作者njari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 22:39:03