Spring Boot Mysql查询基于@query值获取所有记录

时间:2019-12-10 03:53:44

标签: mysql spring-boot spring-boot-jpa

我正在尝试使用Spring Boot JPA从MySQL表检索所有记录。以下是存储库定义

MovieRepository类

@Query("From MovieEntity m, TheaterMovieShowEntity tms, TheaterEntity t where t.city=?1 and t.theaterid=tms.theaterid and m.movieid=tms.movieid and t.seatsavailable>=?2")
    List<Movie> getMoviesDetails(String cityName, int noOfTickets)throws MovieException;

MovieService类

public List<Movie> getMoviesDetails(String cityName, int noOfTickets)throws MovieException{
        List<Movie>moviesIntheCityList = new ArrayList<Movie>();
        **moviesIntheCityList = (List<Movie>) movieRepository.getMoviesDetails(cityName, noOfTickets);**
        System.out.println("in the getMoviesDetails after querying"+moviesIntheCityList); // This is null
        return moviesIntheCityList;
    }

我想念什么?

2 个答案:

答案 0 :(得分:0)

在存储库文件中使用这种方式

List<Movie> findByCityNameAndNoOfTickets(String cityName, int noOfTickets)

参考Query Creation

答案 1 :(得分:0)

只需使用

List<Movie> movieRepository.findByCityNameAndNoOfTickets(String cityName, int noOfTickets);

在您的MovieRepository中。然后调用它。在Spring Data JPA中,如果遵循正确的命名约定,则只需在Repository中声明方法的名称,JPA将为您实现该方法。