У меня есть таблица «продукт» с двумя ФК производитель и категория. Я хочу написать запрос так, чтобы при добавлении товара вы не каждый раз создавали производство, а выбирали его по идентификатору из доступных.
Теперь у меня есть: Мой объект Product:
@ManyToOne(fetch = FetchType.EAGER, optional = false)
@JoinColumn(name="manufactor", referencedColumnName = "id")
private Manufactor manufactor;
public void setManufactor(Manufactor manufactor) {
this.manufactor = manufactor; }
public Manufactor getManufactor() {
return manufactor; }
Мой контроллер:
@RequestMapping(value = "/addProduct", method = RequestMethod.POST)
public Product addNewProduct (@RequestBody Product product ) {
return productRepository.save(product);
}
Мой запрос должен выглядеть примерно так:
{ "name": "Alakazai",
"quantity": 1,
"price": 58,
"manufactor": 2,
"category": 3
}
Но когда я пользуюсь почтальоном, у меня появляется ошибка:
"status": 400,
"error": "Bad Request",
"message": "Invalid JSON input: Cannot construct instance of `com.store.Entity.Manufactor` (although at least one Creator exists): no int/Int-argument constructor/factory method to deserialize from Number value (1); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.store.Entity.Manufactor` (although at least one Creator exists): no int/Int-argument constructor/factory method to deserialize from Number value (1)\n at [Source: (PushbackInputStream); line: 5, column: 16] (through reference chain: com.store.Entity.Product[\"manufactor\"])",
Какую ошибку я допустил? В сущности продукта или где-то еще? Буду рад любым объяснениям
Если вам нужно, мой проект на github: Проект