我正在使用 Spring 框架。我有两个实体,电影和演员,所以一部电影可以有很多演员,一个演员可以在很多电影中扮演。接下来我们有课程:
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
@Entity
public class Actor {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private String surname;
private String age;
@ManyToMany
@JoinTable(name = "movie_actor")
private List<Movie> movies;
public Actor(String name, String surname, String age) {
this.name = name;
this.surname = surname;
this.age = age;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public List<Movie> getMovies() {
return movies;
}
public void setMovies(List<Movie> movies) {
this.movies = movies;
}
}
我使用@ManyToMany注释来定义它们之间的关系。
此时,我在 H2 中有一个具有 ID、AGE、NAME 和 SURNAME 列的 Actor 表,具有 ID、GENRE、TITLE 和 YEAR 的表 Movie,以及一个新表 MOVIE_ACTOR,因为带有 ACTORS_ID 和 MOVIES_ID 列的注释。直到这里看起来还可以。
现在,如果我保存一部电影(我已经为两个实体实现了扩展 jpaRepository 的服务和存储库):
@GetMapping("/create")
public void create() {
Actor actor1 = new Actor("Pedro", "Perez", "40");
Actor actor2 = new Actor("Alfredo", "Mora", "25");
Actor actor3 = new Actor("Juan", "Martinez", "20");
Actor actor4 = new Actor("Mario", "Arenas", "30");
}
(我知道这不是一个获取请求,只是为了检查电影是否正确保存,只需访问端点)我得到的是,在表 Movie 中,4 列已正确添加,但 ACTOR 和 MOVIE_ACTOR 均未完成所以省略了 actorList,这两个表是空的。为什么会发生这种情况以及如何解决?
斯蒂芬大帝
慕容森
相关分类