Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Rest控制器按id/ids方法查找_Spring_Rest_Spring Mvc_Spring Restcontroller - Fatal编程技术网

Spring Rest控制器按id/ids方法查找

Spring Rest控制器按id/ids方法查找,spring,rest,spring-mvc,spring-restcontroller,Spring,Rest,Spring Mvc,Spring Restcontroller,我的Spring RestController中有以下方法: @RequestMapping(value = "/{decisionId}", method = RequestMethod.GET) public DecisionResponse findById(@PathVariable @NotNull @DecimalMin("0") Long decisionId) { .... } 现在我需要添加一个可能性,通过{decisionIds}查找一组DecisionRespon

我的Spring RestController中有以下方法:

@RequestMapping(value = "/{decisionId}", method = RequestMethod.GET)
    public DecisionResponse findById(@PathVariable @NotNull @DecimalMin("0") Long decisionId) {
....
}
现在我需要添加一个可能性,通过
{decisionIds}
查找一组DecisionResponse。。大概是这样的:

@RequestMapping(value = "/{decisionIds}", method = RequestMethod.GET)
    public List<DecisionResponse> findByIds(@PathVariable @NotNull @DecimalMin("0") Set<Long> decisionIds) {
....
}
@RequestMapping(value=“/{decisionIds}”,method=RequestMethod.GET)
公共列表findByIds(@PathVariable@NotNull@DecimalMin(“0”)集合decisionId){
....
}
以下两种方法不能一起使用


实现此功能的正确方法是什么?我应该只留下一个方法(第二个)等待
{decisionIds}
并返回一个集合,即使我只需要1个
Decision
对象?有没有其他合适的方法来实现这一点?

您的问题是在同一端点上不能有两种不同的方法

换句话说,您不能同时使用这两种方法:

@RequestMapping(value = "/{decisionId}", method = RequestMethod.GET)
    public DecisionResponse findById(@PathVariable @NotNull @DecimalMin("0") Long decisionId) {
....
}
@RequestMapping(value = "/{decisionIds}", method = RequestMethod.GET)
    public List<DecisionResponse> findByIds(@PathVariable @NotNull @DecimalMin("0") Set<Long> decisionIds) {
....
}

都是相同的端点

因此,当您有HTTP请求时,请登录
http:///19
,您无法确定要使用哪种方法

解决方案

更清楚地重命名端点以避免冲突

@RequestMapping(value = "/decision/{Id}", method = RequestMethod.GET)


我希望这将对您有所帮助。

您可以为发送单个长值以及长值数组创建一个端点:

@RequestMapping(value = "/{decisionIds}", method = RequestMethod.GET)
    public List<DecisionResponse> findByIds(@PathVariable @NotNull @DecimalMin("0") Set<Long> decisionIds) {
          System.out.println(decisionIds);
}
@RequestMapping(value=“/{decisionIds}”,method=RequestMethod.GET)
公共列表findByIds(@PathVariable@NotNull@DecimalMin(“0”)集合decisionId){
系统输出打印LN(决策ID);
}
并通过如下方式发送path变量来调用此端点:

@RequestMapping(value = "/{decisionIds}", method = RequestMethod.GET)
    public List<DecisionResponse> findByIds(@PathVariable @NotNull @DecimalMin("0") Set<Long> decisionIds) {
....
}

@RequestMapping(value = "/decisions/{Id}", method = RequestMethod.GET)
@RequestMapping(value = "/{decisionIds}", method = RequestMethod.GET)
    public List<DecisionResponse> findByIds(@PathVariable @NotNull @DecimalMin("0") Set<Long> decisionIds) {
          System.out.println(decisionIds);
}