У меня есть две сущности Meal
и Mealplan
, которые находятся в @ManyToMany Relation. Каждый план питания может иметь разные виды еды, и каждая еда может быть в нескольких планах.
@Entity
public class Meal {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private String name;
private BigDecimal price;
private String type;
@ManyToMany(mappedBy = "mealsPerWeek")
private List<Mealplan> mealplan;
и
@Entity
public class Mealplan {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
private int week;
@ManyToMany
private List<Meal> mealsPerWeek;
Поскольку я добавил отношение ManyToMany, я не могу добавить еду с помощью @ Размещение карты в API.
MealController
@RestController
@RequestMapping("/meal")
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class MealController {
@PostMapping
public void addMeal(@RequestBody Meal meal) {
mealRepository.save(meal);
}
Класс MealRepository расширяет JPARepository.
Всякий раз, когда я хочу опубликовать что-либо в моем например,
{
"id": 10,
"name": "Test",
"price": 3.50,
"type": "with Meat"
}
появляется следующая ошибка: "could not execute statement; SQL [n/a]; constraint [PRIMARY]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute statement"
Добавление через INSERT INTO работает как обычно.