Spring boot 获得状态500和消息;缺少URI模板变量';排名'&引用;,在邮递员上测试HTTP POST请求时

Spring boot 获得状态500和消息;缺少URI模板变量';排名'&引用;,在邮递员上测试HTTP POST请求时,spring-boot,spring-restcontroller,Spring Boot,Spring Restcontroller,我在eclipse控制台上遇到错误“已解决[org.springframework.web.bind.MissingPathVariableException:rank]类型的方法参数缺少URI模板变量'rank'” 和消息:“rank类型的方法参数缺少URI模板变量'rank',每当尝试HTTP POST请求时状态为“500” 我的RESTController代码: 我的员工实体 @数据 @AllArgsConstructor @诺尔格构装师 @实体 @表(name=“EMPLOYEE\u T

我在eclipse控制台上遇到错误“已解决[org.springframework.web.bind.MissingPathVariableException:rank]类型的方法参数缺少URI模板变量'rank'” 和消息:“rank类型的方法参数缺少URI模板变量'rank',每当尝试HTTP POST请求时状态为“500”

  • 我的RESTController代码:
  • 我的员工实体
  • @数据
    @AllArgsConstructor
    @诺尔格构装师
    @实体
    @表(name=“EMPLOYEE\u TBL”)
    公营雇员{
    @身份证
    私人长id;
    私有字符串名称;
    私人字符串电子邮件;
    @独身癖
    私人设定职级;
    }
    
    使用
    @RequestBody

    在这里,您请求保存实体,并且应该以JSON格式将负载作为@RequestBody传递。从postman中,您可以使用原始类型并选择JSON类型

    理想的方法是在创建或更新记录时使用@RequestBody,这需要使用POST和PUT方法传递对象。对于基于Id或某些参数检索记录的方法,您可以使用
    @PathVariable

    您可以进一步了解注释

    @RestController
    @RequestMapping(path =  "/comp")
    public class RankController {
        @PostMapping(path = "/rank")
        ResponseEntity<Rank> createRank(@Valid @PathVariable Rank rank) throws URISyntaxException{
            Rank result = rankRepository.save(rank);
            return ResponseEntity.created(new URI("/comp/rank" + result.getId())).body(result);
        }
    }
    
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Entity
    @Table(name = "RANK_TBL")
    public class Rank {
    
        @Id
        private Long id;
        private String name;
    
        @ManyToOne(cascade = CascadeType.PERSIST)
        private Employee employee;
    }
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Entity
    @Table(name = "EMPLOYEE_TBL")
    public class Employee {
        
        @Id
        private Long id;
        private String name;
        private String email;
        
        @OneToMany
        private Set<Rank> Rank;
        
    }