更新 table 以包含图像

Updating a table to contain an image

我已经成功创建了一个实体并且可以 post 到它。我希望能够使用 blob 文件更新 table 的列。当我执行 post 请求时,我得到了成功响应,但是该行未更新

这是实体

    @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 请求时,我得到了这个

但是数据库没有更新。图像列保持为空

你知道为什么吗?

我没有在您的控制器代码中看到 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);

  }