我已經成功創建了一個物體并且可以發布到它。我希望能夠用 blob 檔案更新表的一列。當我執行發布請求時,我收到了成功回應,但是該行未更新
這是物體
@Data
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Service
public class Category {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long categoryId;
@NotNull
@Column(unique=true)
@Size(min = 5, max = 20)
private String categoryName;
@Column(columnDefinition = "MEDIUMBLOB")
private byte[] categoryImage;
@NotNull
@Size(min = 10, max = 50)
private String categoryDescription;
}
圖片上傳的 PUT 請求
@PutMapping("/categories/{categoryId}/upload")
public ResponseEntity<ResponseMessage> uploadImage(@PathVariable("categoryId") long catID,
@RequestParam() MultipartFile file) {
Optional<Category> category = catService.listCategoryById(catID);
if (category.isPresent()) {
try {
Category _category = category.get();
_category.setCategoryImage(imgService.storeImage(file));
return new ResponseEntity<>(
new ResponseMessage("Uploaded " file.getOriginalFilename() " successfully!"),
HttpStatus.CREATED);
} catch (Exception e) {
return new ResponseEntity<>(new ResponseMessage("Failed to upload " file.getOriginalFilename() "!"),
HttpStatus.EXPECTATION_FAILED);
}
} else {
return new ResponseEntity<>(new ResponseMessage("Category Does not exist"), HttpStatus.NOT_FOUND);
}
}
影像服務
@Service
public class ImageService {
public byte[] storeImage(MultipartFile file) throws IOException {
return file.getBytes();
}
}
當我執行 PUT 請求時,我得到了這個

但是資料庫沒有更新。影像列保持為空

你知道為什么嗎?
uj5u.com熱心網友回復:
我在您的控制器代碼中沒有看到 service.save() 呼叫。你堅持那個 _category 物體嗎?
try {
Category _category = category.get();
_category.setCategoryImage(imgService.storeImage(file));
categoryService.save(_category);
return new ResponseEntity<>(
new ResponseMessage("Uploaded " file.getOriginalFilename() " successfully!"),
HttpStatus.CREATED);
} catch (Exception e) {
return new ResponseEntity<>(new ResponseMessage("Failed to upload " file.getOriginalFilename() "!"),
HttpStatus.EXPECTATION_FAILED);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/318572.html
