Я хочу добавить новый объект продукта с его категорией. Объект продукта успешно отправлен, но его категория (внутри продукта) равна нулю. Что за ошибка, которую эта категория не может отправить. Как я могу это исправить? Код внутри @Controller
.
@GetMapping("/loadForm")
public String addNewProduct(Model model){
Product theProduct = new Product();
List<Category> categories = (List<Category>) categoryService.findAll();
model.addAttribute("categories", categories);
model.addAttribute("product", theProduct);
return "addProduct";
}
@PostMapping(value="/add")
public String addProduct(@ModelAttribute("product") Product product) {
System.out.println("Checking");
productService.insert(product);
return "product";
}
Код внутри HTML файла:
<form th:action="@{/products/add}" th:object="${product}" method="POST">
<input type="hidden" value="100" th:field="*{productId}"/><br>
<input type="text" th:field="*{barcode}"
class="form-control mb-4 col-10" placeholder="barcode"><br><br>
<input type="text" th:field="*{createdUser}"
class="form-control mb-4 col-10" placeholder="created User"><br><br>
<input type="text" th:field="*{lastModifiedUser}"
class="form-control mb-4 col-10" placeholder="last Modified User"><br><br>
<input type="text" th:field="*{productIsService}"
class="form-control mb-4 col-10" placeholder="product Is Service"><br><br>
<input type="text" th:field="*{productName}"
class="form-control mb-4 col-10" placeholder="product name"><br><br>
<input type="text" th:field="*{productbuyingPrice}"
class="form-control mb-4 col-10" placeholder="product buying Price"><br><br>
<input type="text" th:field="*{productsellingPrice}"
class="form-control mb-4 col-10" placeholder="product selling Price"><br><br>
<input type="text" th:field="*{version}"
class="form-control mb-4 col-10" placeholder="version"><br><br>
<select th:field="*{category}"
class="form-control mb-4 col-10" placeholder="Select category">
<option th:each="tempCategory : ${categories}" th:value="${tempCategory}" th:text="${tempCategory.categoryName}"></option>
</select>
<button type="submit" class="btn btn-info col-4">Save</button>
</form>
И отношение между товаром и категорией - много к одному. Код в классе продукции
@ManyToOne(cascade = {CascadeType.DETACH, CascadeType.MERGE,
CascadeType.PERSIST,CascadeType.REFRESH})
@JoinColumn(name="category_id")
private Category category;
Код в категории класса
@JsonIgnore
@OneToMany(mappedBy="category")
private List<Stock> stocks;