拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 无法将路径变量转换为物件

无法将路径变量转换为物件

白鹭 - 2022-03-01 1966 0 0

我想将一个物件作为路径变量,但在测验时出现以下例外。我怎样才能解决这个问题

@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 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *