У меня есть собственный метод в Spring Boot Repository, такой как:
@Transactional
@Modifying
@Query(value = "insert into image ( product_id, image_path) values ( :product_id, :image_path )", nativeQuery = true)
void insertProduct(
@Param("product_id") long product_id , @Param("image_path") String image_path);
Я выполняю insertProduct()
в методе createProduct
:
@PostMapping(consumes = { "multipart/form-data" }, value = "/createProduct/{category_id}")
@ResponseStatus(HttpStatus.OK)
@ResponseBody
private List<CategoryModel> createProduct(@RequestPart("product") @Valid ProductModel product,
@PathVariable("category_id") int category_id,
@RequestPart("file") @Valid @NotNull MultipartFile file) {
String fileName = fileStorageService.storeFile(file);
product.setCategory_id(category_id);
this.productRepository.save(product);
String workingDir = System.getProperty("user.dir") + "/uploads/";
String imagePath = workingDir + fileName;
int productID = this.productRepository.selectLastRecord();
this.imageRepository.insertProduct(productID, imagePath);
return this.categoryRepository.findAll();
}
Моя проблема в том, что когдаЯ сохраняю данные в БД с insertProduct()
, и когда я возвращаю данные из this.categoryRepository.findAll();
, я не получаю новые заполненные данные, я получаю данные старой версии.Я отлаживаюсь, когда я выполняю insertProduct()
Я вставил новые данные в БД, но не понимаю, почему я могу вернуть.