我发现了类似的问题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;