我发现了类似的问题here,并尝试修复它,但仍然无法正常工作。

使用:Hibernate,Spring MVC

我在旅行者和地址之间存在@ManyToMany关系。

如果我由他们自己的控制器分别创建Traveler和Address,则可以使用。但是,如果我尝试通过以下控制器创建Traveler和相应的地址,则会收到400错误的请求错误:

    @RequestMapping(value = "/travelers", method=RequestMethod.POST)
    public @ResponseBody Traveler createTraveler(@RequestBody Traveler traveler, Address address) {
    logger.info("Start createTraveler");
    System.out.println("Received traveler: " + traveler.getLastName());
    travelerDAO.save(traveler);
    System.out.println("Received address: " + address.getStreet());
    addressDAO.save(address);
    logger.info("End createTraveler");
    return traveler;
}

最佳答案

如果您的JSON有效负载是带有嵌套地址的traveler对象,则spring应该自动(在Jackson的帮助下)为Traveler填充地址集合。
不使用地址参数尝试。

@RequestMapping(value = "/travelers", method=RequestMethod.POST)
    public @ResponseBody Traveler createTraveler(@RequestBody Traveler traveler) {

   logger.info("Start createTraveler");
    System.out.println("Received traveler: " + traveler.getLastName());
    travelerDAO.save(traveler);
    System.out.println("Received addresses: " + traveler.getAddresses());
    //save addresses in loop
    return traveler;

10-01 06:03