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