Spring Boot автоматически инкрементируется id при обновлении

Суть проблемы в том, что я пытаюсь обновить запись в бд, но она не обновляется а создаётся новая с инкрементированным id. Вот метод который используется для обновления:

    @Override
    public int updateOne(Product product) throws DataAccessException {
        int rowNumber = jdbcTemplate.update("UPDATE product" +
                        " SET" +
                        " name=?," +
                        " information=?," +
                        " category=?," +
                        " amount=?," +
                        " price=?," +
                        " status=?" +
                        "WHERE id=?"
                , product.getName()
                , product.getInformation()
                , product.getCategory()
                , product.getAmount()
                , product.getPrice()
                , product.getStatus()
                , product.getId());
        return rowNumber;
    }

Ими я отслеживаю:

    @GetMapping("/shopUpdate/{id:.+}")
    public String productUpdate(@PathVariable("id") Long id,
                                @ModelAttribute ProductForm form,
                                Model model) throws Exception {
        Product product = productService.selectOne(id);
        form.setId(product.getId());
        form.setStatus(product.getStatus());
        form.setPrice(product.getPrice());
        form.setInformation(product.getInformation());
        form.setAmount(product.getAmount());
        form.setCategory(product.getCategory());
        form.setName(product.getName());
        model.addAttribute("ProductForm", form);
        return "updateProd";
    }

    @PostMapping(value = "/shopUpdate", params = "update")
    public String productUpdatePost(
                              @ModelAttribute ProductForm form,
                              Model model) throws Exception {

        Product product = new Product();

        product.setId(form.getId());
        product.setStatus(form.getStatus());
        product.setPrice(form.getPrice());
        product.setInformation(form.getInformation());
        product.setAmount(form.getAmount());
        product.setCategory(form.getCategory());
        product.setName(form.getName());

        productService.updateOne(product);
        return "redirect:/shopAll";
    }
}

Вот HTML форма через которую заполняю:

<div th:fragment="product" class="container mt-5 mb-5">
    <h1>Обновить продукт</h1>
    <form action="/shopAdd" th:object="${ProductForm}" method="post" enctype="multipart/form-data">
        <input type="text" th:value="${ProductForm.name}" th:field="*{name}" name="name" placeholder="Введите название товара" class="form-control"><br>
        <textarea type="full_text" th:field="*{information}" name="information" placeholder="Введите описание товара" class="form-control"></textarea><br>
        <input type="text" th:field="*{category}" name="category" placeholder="Введите категорию товара" class="form-control"><br>
        <input type="text" th:field="*{amount}" name="amount" placeholder="Введите количество товара" class="form-control"><br>
        <input type="text" th:field="*{price}" name="price" placeholder="Введите цену товара" class="form-control"><br>
        <input type="text" th:field="*{status}" name="status" placeholder="Введите статус товара" class="form-control"><br>
        <button class="flex-c-m size1 bg4 bo-rad-23 hov1 s-text1 trans-0-4" name="update" type="submit" id="editProd">Обновить</button>
    </form>
</div>

Я уже не знаю в чем дело и как побороть этот id подскажите пожалуйста


Ответы (0 шт):