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 подскажите пожалуйста