gpt4 book ai didi

java - Spring 启动: Can not POST into ManyToMany Relation

转载 作者:太空宇宙 更新时间:2023-11-04 09:04:38 25 4
gpt4 key购买 nike

我有两个位于 @ManyToMany 关系中的实体 MealMealplan。每个膳食计划可以有不同的膳食,并且每个膳食可以位于多个膳食计划中。

@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 关系,因此无法通过 @Postmapping 将餐食添加到 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"
}

出现以下错误:“无法执行语句;SQL [不适用];约束 [PRIMARY];嵌套异常为 org.hibernate.exception.ConstraintViolationException:无法执行语句”

通过 INSERT INTO 添加可以正常工作。

最佳答案

根据您的实体映射,Id 字段定义为自动生成。在您的请求 Json 中,Id 传递为 10。您是否尝试插入或更新?。您可以尝试下面的请求 JSON 并查看插入是否有效。

{
"name": "Test",
"price": 3.50,
"type": "with Meat",
"mealplan": []

}

关于java - Spring 启动: Can not POST into ManyToMany Relation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60368392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com