我想将一个物件作为路径变量,但在测验时出现以下例外。我怎样才能解决这个问题
@Validated
@RestController
@RequestMapping("/test/api")
public class MyRestController {
    @GetMapping("/data/{id}")
    public Data getData(@PathVariable @Valid IdData id) {
        return new Data();
    }
}
@Data
public class IdData {
    private Integer id;
    public IdData(Integer id) {
        this.id = id;
    }
}
例外:
uj5u.com热心网友回复:
从“/data/{id}”你会得到一个整数id,但是方法自变量试图获取不兼容的IdData值。
@Validated
@RestController
@RequestMapping("/test/api")
public class MyRestController {
    @GetMapping("/data/{id}")
    public Data getData(@Valid @PathVariable int id) {
        return new Data();
    }
}
输出:-
{
   "repository": {
      "metricName": "spring.data.repository.invocations",
      "autotime": {
         "enabled": true,
         "percentilesHistogram": false,
         "percentiles": null
      }
   }
}
uj5u.com热心网友回复:
您可以将 @PathVariable 资料型别从 IdData 更改为整数。只需添加一些逻辑以通过路径中的 id 获取 IdData,这可以通过使用 JPA 的 findById() 方法来完成。在路径中传递整数而不是整个物件也可能更容易。

 
							 
										
										 
										
										 
										
										
										 
										
										 
										
										 
										
										
0 评论