我试图在春天建立电影和演员之间的关系模型。这里有我的两门课:
@Entity
public class Movie {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private String genre;
private String year;
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private List<Actor> actors;
// getters and setters
@Entity
public class Actor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String surname;
private String age;
// getters and setters
我已经定义了多对多单向关系,它工作正常,但在以下情况下不行。如果我插入一部新电影,其中包含数据库中尚未存在的新演员,则效果很好,所有表都会正确更新。但是,如果我想插入一部包含已保存演员的新电影,我不想保存两次,我希望关系表引用已保存的演员,并且在演员表中不添加新演员。
以下 JSON 是发送到端点以创建新电影的 JSON:
{
"actors": [
{
"age": "string",
"dni": "string",
"name": "string",
"surname": "string"
}
],
"genre": "string",
"title": "string",
"year": "string"
}
那么如何插入数据库中已有演员的电影以便被引用呢?因为如果我插入一个具有完全相同数据的新数据,我会将该参与者保存两次,并且在标识符重复的情况下,我会遇到唯一索引或主键冲突。
非常感谢你的帮助!
梦里花落0921
一只甜甜圈
相关分类