一对多关系时使用spring repository获取数据

所以我有两个类 Movie 和 Genres 是一对多的关系。我想要做的是使用 Spring 存储库获取按流派名称过滤的电影列表。我希望能够做类似的事情:


List<Movie> movies = movieRepository.getMoviesByGenres(Arrays.asList("Drama", "Comedy"))

我想像下面那样做,但这不是工作,有没有选择使用 spring 存储库来做到这一点?


@Entity

public class Movie {


  @Id

  @Column(name = "movie_id")

  private long id;

  private String title;

  @OneToMany(mappedBy = "movie")

  private Set<Genres> genres;

  ...

-


@Entity

public class Genres {


  @Id

  private long id;

  @ManyToOne

  @JoinColumn(name = "movie_id", nullable = false)

  private Movie movie;

  private String name;

  ...

}

-


public interface MovieRepository extends JpaRepository<Movie, Long>{


  List<Movie> getMoviesByGenres(String name);

}


饮歌长啸
浏览 69回答 1
1回答

ITMISS

您需要创建如下所示的方法:public interface MovieRepository extends JpaRepository<Movie, Long>{&nbsp; List<Movie> getMoviesByGenresNameIn(List<String> names);}如果你想获取geners与一个查询的关系,你需要EntityGraph像下面这样装饰方法:@EntityGraph(attributePaths={"geners"})List<Movie> getMoviesByGenresNameIn(List<String> names);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java