如何打破循环依赖?

时间:2019-09-30 10:11:05

标签: database spring spring-boot spring-data-jpa h2

我正在尝试在春季为电影和演员之间的关系建模。这里有我的两个课:

@Entity
public class Movie {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String title;
    private String genre;
    private String year;

    @ManyToMany(mappedBy = "movies", cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    private List<Actor> actors;

//Getters & Setters
}
@Entity
public class Actor {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String surname;
    private String age;
    private String dni;

    @ManyToMany
    @JoinTable(name = "movie_actor")
    private List<Movie> movies;

// Getters & Setters
}

我在H2中为实体准备了存储库,并为CRUD的创建电影操作准备了端点。问题是,当我要使用电影的所有信息创建请求主体时,我发现电影具有演员列表,而演员具有已执行电影的列表,又有演员...等等。因此,我不知道在制作新电影时如何处理这种无限的依赖性。以我注释代码的方式,已经创建了关联关系表,并且在插入新电影时,可以假定演员自动插入了他们的表中,并且关系表也已完成。在我的数据库中,有以下表格:Movie,Actor和Movie_Actor(关系表)。

有关任何想法?非常感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

answer to your previous question中,我已经提到了一些有关@ManyToMany关联的有用链接。

要了解如何通过Rest API与Spring Boot应用程序交互,请查看tutorials of the official website of Pivotal(Spring的创建者)。为简单起见,我将从一个简单的get请求开始,看看返回了什么。然后,可以使用这种格式的正文来测试其他请求。