source: Git/src/main/java/com/wediscussmovies/project/repository/MovieRepository.java@ c02189f

main
Last change on this file since c02189f was c02189f, checked in by Petar Partaloski <ppartaloski@…>, 2 years ago

Added new core functionalities, fixed bugs and improved visual clarity

  • Property mode set to 100644
File size: 1.8 KB
Line 
1package com.wediscussmovies.project.repository;
2
3import com.wediscussmovies.project.model.Movie;
4import com.wediscussmovies.project.model.Person;
5import com.wediscussmovies.project.querymodels.GenreLikes;
6import com.wediscussmovies.project.querymodels.MovieLikesQM;
7import org.springframework.data.jpa.repository.JpaRepository;
8import org.springframework.data.jpa.repository.Query;
9import org.springframework.data.repository.query.Param;
10import org.springframework.stereotype.Repository;
11
12import javax.transaction.Transactional;
13import java.util.List;
14import java.util.Optional;
15
16@Repository
17public interface MovieRepository extends JpaRepository<Movie, Integer> {
18 List<Movie> findAllByTitleLike(String Title);
19 List<Movie> findAllByDirector(Person director);
20 List<Movie> findAllByDirectorIsNull();
21 @Query(value="select m.movieId from Movie m")
22 List<Integer> findAllMovieIds();
23
24 @Query(value="select new com.wediscussmovies.project.model.Movie(m.movieId, m.title, m.imdbRating, m.imageUrl) from Movie m" +
25 " where m.movieId = :index")
26 Optional<Movie> findBasicById(@Param("index")Integer index);
27
28
29 @Query(value = "select new com.wediscussmovies.project.querymodels.MovieLikesQM(m.movieId, count(ml.id.userId)) from Movie m" +
30 " left join MovieLikes ml on ml.id.movieId = m.movieId" +
31 " group by m.movieId" +
32 " order by count(ml.id.userId) desc")
33 @Transactional
34 List<MovieLikesQM> findAllWithLikes();
35
36 @Query(value = "select new com.wediscussmovies.project.querymodels.MovieLikesQM(m.movieId, count(ml.id.userId)) from Movie m" +
37 " left join MovieLikes ml on ml.id.movieId = m.movieId" +
38 " group by m.movieId" +
39 " having m.movieId = :id")
40 @Transactional
41 List<MovieLikesQM> findLikesForMovie(@Param("id") Integer movie_id);
42
43
44}
Note: See TracBrowser for help on using the repository browser.