Ментод findAll () выполняется перед пользовательским методом SQL в Spring Hibernet - PullRequest
0 голосов
/ 15 июня 2019

У меня есть собственный метод в 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() Я вставил новые данные в БД, но не понимаю, почему я могу вернуть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...