[英]How to send Map<> object in postman request to Spring boot app?
[英]How to send in postman Map with key as object?
我有這樣一個實體結構,所以我想發送一個發布請求並創建具有所有屬性的訂單。 如何請求正文在 postman 中應該是什么樣子?
@Entity
public class Order {
@Id int id;
String name;
@ElementCollection
@CollectionTable(name="INVENTORY", joinColumns=@JoinColumn(name="STORE"))
@Column(name="COPIES_IN_STOCK")
@MapKeyJoinColumn(name="MOVIE", referencedColumnName="ID")
Map<Item, Integer> items;
}
@Entity
public class Item {
@Id long id;
String name;
}
@RestController
@RequestMapping("api/v1/order")
public class OrderController {
public final OrderService orderService;
public OrderController(OrderService orderService) {
this.orderService = orderService;
}
@PostMapping
public void saveOrder(@RequestBody Order order){
orderService.save(order);
}
}
這是錯誤的身體,所以我試着根據我的數據找出它應該是什么樣子 model
{
"name":"first order",
"items": {
"item-1":{
"name": "frist item"
},
"item-2":{
"name": "second item"
}
}
}
期望獲得狀態以從具有整個結構的客戶訂單接收
我認為@RequestBody
默認情況下無法處理此示例請求:
{
"name":"first order",
"items": {
"item-1":{
"name": "frist item"
},
"item-2":{
"name": "second item"
}
}
}
為此你應該嘗試這樣的事情:
@Entity
public class Order {
@Id int id;
String name;
@ElementCollection
@CollectionTable(name="INVENTORY", joinColumns=@JoinColumn(name="STORE"))
@Column(name="COPIES_IN_STOCK")
@MapKeyJoinColumn(name="MOVIE", referencedColumnName="ID")
Map<Item, Integer> items;
@JsonAnySetter
public void addItems(String key, Item item) {
items.put(item, Integer.valueOf(key.split("-")));
}
}
如果您想將項目的重復次數計為 hashmap 中的鍵,請將您的邏輯放入此設置器中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.