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

Spring Data JPA多路径参数查询仅返回首个结果问题求助

问题原因及解决方案

核心问题

你的Controller层中,第二个参数data1没有添加@PathVariable注解,Spring无法从URL路径中读取这个参数的值,导致调用Repository方法时data1实际为null。SQL执行时IN (:data0,:data1)就变成了IN ('2022-11-24', null),自然只会返回第一个参数对应的数据。

修正后的Controller代码

@RequestMapping(value="/agenda/clone/{data0}/{data1}", method=RequestMethod.GET)
public @ResponseBody List<AgendaModel> clone(@PathVariable String data0, @PathVariable String data1){
    return actions.find(data0,data1);
}

可选优化建议

如果后续可能需要支持更多日期查询,可以把Repository方法的参数改成List,提升扩展性:

Repository层优化后代码

@Query(value = "SELECT * FROM agenda WHERE substring(data,1,10) IN (:dates)", nativeQuery = true)
List<AgendaModel> find(@Param("dates") List<String> dates);

对应Controller层调整

@RequestMapping(value="/agenda/clone/{dates}", method=RequestMethod.GET)
public @ResponseBody List<AgendaModel> clone(@PathVariable List<String> dates){
    return actions.find(dates);
}

访问时可以用类似/agenda/clone/2022-11-24,2022-11-25的路径(Spring会自动把逗号分隔的路径参数转成List)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:46:08