【问题标题】:adding single item or list of items in PUT Spring Boot + posting list of items to Java List in Postman在 PUT Spring Boot 中添加单个项目或项目列表 + 将项目列表发布到 Postman 中的 Java 列表
【发布时间】:2021-06-24 20:08:29
【问题描述】:

我在 Spring Boot 中有我的 API: 我有两个问题:

1)我在一个Entity类中有如下方法:

@OneToMany
@JoinColumn
private List<Product> orderItems;

public void addProductComponents(Component myComponent){
    this.productComponents.add(myComponent);
}

public void setProductComponents(List<Component> productComponents){
    this.productComponents = productComponents;
}

我在控制器类中有以下方法:

@PutMapping("/update/{id}")
  public CustOrder updateOrder(@RequestBody CustOrder myOrder, @PathVariable Long id){
      return myCustOrderRepository.findById(id).map((order) ->{
        order.setOrderItems(myOrder.getOrderItems());  
        return myCustOrderRepository.save(order);
      }).orElseGet(() ->{
        myOrder.setOrderNumber(id);
        return myCustOrderRepository.save(myOrder);
      });
   }

问题:对于 order.setOrderItems() 方法,我希望能够将单个产品添加到列表中,并且还能够将多个产品添加到列表中?

2)

这是我的代码:

private String name;
@OneToMany
@JoinColumn
private List<Component> productComponents;
private double productPrice;
private String status;

问题:如何将对象列表传递给 PostMan 中的 List,我尝试了以下方法:

{
  "name": "abc", 
  "productComponents": [
    {"apple"}
    ],
  "productPrice": 1.2,
  "status": "some status" 
}

突出显示错误在 productComponents 中。

【问题讨论】:

    标签: java json spring spring-boot postman


    【解决方案1】:
    1. 您可以重载setOrderItems 方法以接收对象列表

    2. 您需要为Component 实体提供对象。 例如:

    Component.java

    String id;
    String name; 
    

    在 Postman 中,身体将是

    {
     "name": "abc", 
     "productComponents": [
        {
         "id":"some-id",
         "name": "apple"
        }
       ],
     "productPrice": 1.2,
     "status": "some status" 
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-25
      • 2017-07-14
      相关资源
      最近更新 更多