Обновление таблицы, содержащей изображение

#spring-boot #jpa #spring-data-jpa #rest

Вопрос:

Я успешно создал объект и могу опубликовать его. Я хочу иметь возможность обновлять столбец таблицы с помощью файла большого двоичного объекта. Когда я выполняю запрос на публикацию, я получаю успешный ответ, однако строка не обновляется

Это сущность

 @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, я получаю это ПОМЕСТИТЕ запрос пос

Однако база данных не обновляется. Столбец изображения остается пустым рисунок строки базы данных

У вас есть идеи, почему?

Ответ №1:

Я не вижу вызова service.save() в коде вашего контроллера. Вы сохраняете эту сущность _категории?

 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);   }