我正在創建一個電子商務購物平臺。
我有以下 3 個物體類:
產品庫存
命令
訂購產品
@Entity @Getter @Setter @NoArgsConstructor @AllArgsConstructor 公共類 ProductInventory {
@Id @GeneratedValue(strategy = GenerationType.AUTO) private Long productId; private String name; private Double price; private Long availableQty; private String description; @Enumerated(EnumType.STRING) private Category category;}
@Entity @Getter @Setter @NoArgsConstructor @AllArgsConstructor 公共類訂單 {
@Id @GeneratedValue(strategy = GenerationType.AUTO) private Long orderId; private String userEmail; @Temporal(TemporalType.DATE) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="dd/MM/yyyy") private Date orderDate; @Temporal(TemporalType.DATE) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="dd/MM/yyyy") private Date deliveryDate; private double bill; @JsonIgnore @OneToMany(cascade = CascadeType.ALL , mappedBy = "orders") private List<OrderedProduct> orderedProductList = new ArrayList<>();}
@Entity @Setter @Getter @NoArgsConstructor @AllArgsConstructor @JsonIdentityInfo(property = "id",generator = ObjectIdGenerators.PropertyGenerator.class) 公共類 OrderedProduct {
@Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; private Long orderedProductId; private Long quantityOrdered; @ManyToOne(optional = false , fetch = FetchType.LAZY) @JoinColumn(name = "ORDEREDPRODUCT_ID") private Orders orders; @ManyToOne(optional = false , fetch = FetchType.LAZY) @JoinColumn(name = "product_product_id") private ProductInventory product;}
我有以下控制器來接受 POST 請求。
@RestController
@RequestMapping("/orders")
public class OrderController {
@Autowired
private OrderService orderService;
@PostMapping(value = "/placeOrder")
public ResponseEntity<String> createUserRequest(@RequestBody Orders newOrder) throws IOException {
System.out.println("NewOrder ID = " newOrder.getOrderId());
System.out.println("NewOrder UserEmail = " newOrder.getUserEmail());
System.out.println("NewOrder ORDERDATE = " newOrder.getOrderDate());
System.out.println("NewOrder DELIVERYDATE = " newOrder.getDeliveryDate());
System.out.println("NewOrder BILL = " newOrder.getBill());
System.out.println("NewOrder List = " newOrder.getOrderedProductList());
return orderService.createOrder(newOrder);
}
}
當我發送以下POST請求時:
{
"userEmail": "new order",
"orderDate": "09/03/2022",
"deliveryDate": "09/04/2022",
"bill": 80,
"orderedProductList": [
{
"orderedProductId": 1,
"quantityOrdered": 3
}
]
}
我在控制臺中得到以下輸出:
NewOrder ID = null
NewOrder UserEmail = new order
NewOrder ORDERDATE = Wed Mar 09 05:30:00 IST 2022
NewOrder DELIVERYDATE = Sat Apr 09 05:30:00 IST 2022
NewOrder BILL = 80.0
NewOrder List = [] --------------------I'm more concerned about this list being empty inside the controller
Inside OrderService
Bill : 80.0
The number of ordered products are as follows : 0
當表中存在和不存在具有給定 id 的產品時,我嘗試執行 POST 請求。兩次它在控制臺中回傳相同的結果。
我還嘗試通過"quantityOrdered": 3從 JSON 中洗掉 POST 來執行 POST,但我又得到了相同的結果。資料保存在 MySqlDB 中,但串列每次都是空的。
我無法找出我在哪里犯了錯誤。
任何人都可以幫忙嗎?
提前致謝。
uj5u.com熱心網友回復:
您在該欄位上有@JsonIgnore,因此它不會被反序列化。
參考這個。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/441680.html
