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

main
Last change on this file since 0226942 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
RevLine 
[6e7b472]1package com.wediscussmovies.project.repository;
2
[e0ef1b1]3import com.wediscussmovies.project.model.Movie;
4import com.wediscussmovies.project.model.Person;
[c02189f]5import com.wediscussmovies.project.querymodels.GenreLikes;
6import com.wediscussmovies.project.querymodels.MovieLikesQM;
[6e7b472]7import org.springframework.data.jpa.repository.JpaRepository;
[3c0f9a9]8import org.springframework.data.jpa.repository.Query;
[c02189f]9import org.springframework.data.repository.query.Param;
[6e7b472]10import org.springframework.stereotype.Repository;
11
[c02189f]12import javax.transaction.Transactional;
[6e7b472]13import java.util.List;
[c02189f]14import java.util.Optional;
[6e7b472]15
16@Repository
17public interface MovieRepository extends JpaRepository<Movie, Integer> {
[e0ef1b1]18 List<Movie> findAllByTitleLike(String Title);
19 List<Movie> findAllByDirector(Person director);
20 List<Movie> findAllByDirectorIsNull();
[3c0f9a9]21 @Query(value="select m.movieId from Movie m")
22 List<Integer> findAllMovieIds();
[c02189f]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
[6e7b472]44}
Note: See TracBrowser for help on using the repository browser.