@RequestBody 没有映射到我的 Post RestAPI 中的 Bean

@RequestBody is not mapping to the Bean in my Post RestAPI

我的 restApi 中有一个 Post 方法,我在其中使用 @RequestBody 将 JSON 映射到 Bean。这是我的控制器代码,我将 JSON 映射到 Employee bean

@RestController
@RequestMapping("/api/employees")
public class EmployeeController {

    
    private EmployeeService employeeService;

    public EmployeeController(EmployeeService employeeService) {
        super();
        this.employeeService = employeeService;
    }
    
    //build restAPi for create Employee
    
    @PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
    public ResponseEntity<Employee> saveEmployee(@RequestBody Employee employee){
        return new ResponseEntity<Employee>(employeeService.saveEmployee(employee),HttpStatus.CREATED );
        
    }
    
    
}

下面是 Employee bean class

@Data
@Entity //makes this as JPA entity
@Table(name="employee")  // if not defined it creates the table with class name by default
public class Employee {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;
    
    
    @Column(name = "first_name")
    private String firstName;
    
    @Column(name = "last_name")
    private String lastName;
    
    @Column(name="email_id")
    private String emailId;

}

此外,这是我的服务class

@Override
public Employee saveEmployee(Employee employee) {
    // TODO Auto-generated method stub
    return employeeRepository.save(employee);
}

我post对这个服务的JSON请求如下

{
    "firstName" : "Priya",
    "lastName" : "Venkatesan",
    "emailId" : "priyavenkat@gmail.com"
}

我不确定我缺少什么,而且我是 API 开发的新手。请请求帮助。谢谢

在控制器的@RequestBody 中使用持久化实体不是个好主意。

请查看此 link:

我对这个问题的看法: 您正在 jpa 实体中使用 lombok。 Lombok 可能有问题,您的 getters/setters 没有生成,这使得无法映射您的 json 和您的 Employee 对象。