例如,我有一个用户表和一个订单表,我想为同一个用户添加多个订单的详细信息,但只使用一次Post方法。 有没有办法这样做?
以下是订单控制器:
@RequestMapping(method = RequestMethod.POST,value = "/users/{userId}/orders")
public List<Orders> addOrder(@RequestBody Orders order,@PathVariable BigInteger userId) {
order.setUser(new User(userId," "," "," "));
ordersService.addOrder(order);
}
订单实体: -
@Entity
public class Orders {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private BigInteger id;
private String date;
@ManyToOne
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Orders(){}
public Orders(BigInteger id, String date,BigInteger userId) {
super();
this.id = id;
this.date = date;
this.user=new User(userId," "," "," ");
}
public BigInteger getId() {
return id;
}
public void setId(BigInteger id) {
this.id = id;
}
public String getDate() {
return date;
}
public void setDate(String date) {
this.date = date;
}
}
我想要的是使用订单控制器的相同post方法,为单个用户标识发布多个订单
答案 0 :(得分:0)
肯定是的。假设您想在单个请求中发布多个订单。请考虑每个订单都包含orderName
,orderNumber
等属性。所以你可以像
{
"orders":[
{
"orderName":"order1",
"orderNumber":"Ref-1"
},
{
"orderName":"order2",
"orderNumber":"Ref-2"
}
]
}
@RequestMapping(method = RequestMethod.POST,value = "/users/{userId}/orders", consumes = MediaType.APPLICATION_JSON_VALUE)
public List<Orders> addOrder(@RequestBody List<Order> orders,@PathVariable BigInteger userId) {
//do whatever you want
}
Order
应该是一个带有必需参数/字段的简单pojo。