簡體   English   中英

補丁 REST API 到 Z2A2D595E6ED9A0B24F027F2B63B13 中的部分更新 MongoDB

[英]Patch REST API to Partial Update MongoDB in spring boot

我想向我的 API 發送 REST PATCH 請求以僅更新某些字段而不是整個請求正文。 有人可以幫我解決這個問題嗎

@PatchMapping("/update/{id}")
    public ResponseEntity<String> update(@Valid @RequestBody Ordonnance ordonnance, @PathVariable("id") String id){

        Optional<Ordonnance> ordonnanceData = ordonnanceRepository.findById(id);
       this.ordonnanceRepository.save(ordonnance);
       return ResponseEntity.ok("resource updated");
}

您可以通過調用從存儲庫返回的 object 上的設置器來修改字段。

@PatchMapping("/update/{id}")
public ResponseEntity<String> update(@Valid @RequestBody Ordonnance ordonnance, @PathVariable("id") String id){
    Optional<Ordonnance> dbOrdonnance = ordonnanceRepository.findById(id);

    if (!ordonnanceData.isPresent()) {
      // The ID entered could not be found.
      return ResponseEntity.notFound("Resource with id " + id + " was not found");
    }

    // Modify the values of the Ordonnance object retrieved from the database
    Ordonnance ordonnanceToEdit = dbOrdonnance.get();
    ordonnanceToEdit.setField1(ordonnance.getField1());
    ordonnanceToEdit.setField2(ordonnance.getField2());
    ordonnanceToEdit.setField3(ordonnance.getField3());

    // Save to repository
    this.ordonnanceRepository.save(ordonnanceToEdit);
    return ResponseEntity.ok("Resource with ID " + id + " was successfully updated.");
}

此代碼應該可以工作,但是您應該創建單獨的 Java DTO 類,這些類通常用於傳輸數據。 這樣你就可以只傳入 ID 和你想更新的字段,而不必傳入整個 object。

暫無
暫無

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

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