我想将一个物件作为路径变量,但在测验时出现以下例外。我怎样才能解决这个问题
@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 评论