簡體   English   中英

如何.save/POST Java spring-boot JPA 中來自 JSON 鍵值對的值數組

[英]How to .save/POST an array of values from a JSON key value pair in Java spring-boot JPA

我正在嘗試通過 REST .POST 將對象保存到我的數據庫中,當我從前端接收 JSON 對象時,來自 json 鍵的值之一在數組形式中有多個值。

JSON:

{ "supportedId": [ 2, 4, 1, 18592, 18594 ], "reportSubscriptionId": 100 }

我想使用“reportSubscriptionId:100”將每個“supportedId”保存為數據庫中自己的INSERT/Unique條目,就像上面的json對象一樣。

如何遍歷數組並正確保存它? 任何幫助將不勝感激,謝謝!

 @RequestMapping(
      method = RequestMethod.POST
      )
@ResponseBody
public ApplicationUserSubscription createAppSubscription(@RequestBody ApplicationUserSubscription appUser) {

  return applicationUserSubscriptionRepository.save(appUser);

@Repository
public interface ApplicationUserSubscriptionRepository extends 
JpaRepository<ApplicationUserSubscription, Integer>  {}

通過如下處理輸入請求來創建請求類來映射輸入和創建實體,

實體:

public class ApplicationUserSubscription {
    @Id
    private Integer supportedId;
    private Integer reportSubscriptionId;
    //constructor getter setters

}

要求:

class ApplicationUserSubscriptionRequest {
     private List<Integer> supportedIds;
     private Integer reportSubscriptionId;
     //contructor getter setters
  }

控制器:

@RequestMapping(method = RequestMethod.POST)
public List<ApplicationUserSubscription> createAppSubscription(@RequestBody ApplicationUserSubscriptionRequest applicationUserSubscriptionRequest) {
List<ApplicationUserSubscription> subscriptions = applicationUserSubscriptionRequest.getSupportedIds().stream()
               .map(ele -> new ApplicationUserSubscription(ele, applicationUserSubscriptionRequest.getReportSubscriptionId()))
               .collect(Collectors.toList());
   return applicationUserSubscriptionRepository.saveAll(subscriptions);
}

存儲庫:

 @Repository
 public interface ApplicationUserSubscriptionRepository extends JpaRepository<ApplicationUserSubscription, Integer> {

  }

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM