为什么不删除 rest api 中的数据

Why does not delete data in rest api

我正在休息api。按 id 删除数据时出错。所有代码都已完成,但不知道为什么邮递员会引发错误。我可以使用 hibernate 将两个 table 映射为单向映射。

下面是邮递员的错误:

"message": "Required request body is missing: public org.springframework.http.ResponseEntity<org.springframework.http.HttpStatus> com.rest.RestApiPojo.Controller.PojoController.deleteAddressPerson(com.rest.RestApiPojo.Entity.Person,java.lang.Integer)"

下面是我的代码:

实体

public class Person {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer person_id;
    private String name;

    @JsonManagedReference
    @OneToOne(cascade = CascadeType.ALL, mappedBy = "person")
    private Address address;

    // getter setter
}

@Table(name = "address_master")
public class Address {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer address_id;

    private String city;

    private String country;

    @JsonBackReference
    @OneToOne(cascade=CascadeType.ALL, targetEntity = Person.class)
    @JoinColumn(name = "person_id")
    private Person person;

    // getter setter
}

SeviceImpl

@Override
public void deleteAddressPerson(Integer personId) {
    personRepo.deleteById(personId);
}

控制器

@RequestMapping(value = "/dltpersonaddress/{personId}", method = RequestMethod.DELETE)
public ResponseEntity<HttpStatus> deleteAddressPerson(@RequestBody Person person, @PathVariable Integer personId)
{
    pojoService.deleteAddressPerson(personId);
    return new ResponseEntity<>(HttpStatus.OK);
}

您的控制器方法中有一个未使用的 @RequestBody Person person 参数。

@RequestMapping(value = "/dltpersonaddress/{personId}", method = RequestMethod.DELETE)
public ResponseEntity<HttpStatus> deleteAddressPerson(@RequestBody Person person, @PathVariable Integer personId)
{
    pojoService.deleteAddressPerson(personId);
    return new ResponseEntity<>(HttpStatus.OK);
}

错误消息说明此参数是必需的,没有它的请求将不会被处理。

删除参数以解决问题。