【发布时间】:2020-01-29 21:38:42
【问题描述】:
我试图在春季模拟电影和演员之间的关系。这里有我的两个类:
@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"
}
那么我如何插入一个演员已经在数据库中的电影以便引用它呢?因为如果我插入一个具有完全相同数据的新演员,我会两次保存这个演员,并且在标识符重复的情况下,我会得到唯一索引或主键违规。
非常感谢您的帮助!
【问题讨论】:
标签: java database spring spring-data-jpa h2