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

main
Last change on this file since 6f91f99 was 6f91f99, checked in by Test <matonikolov77@…>, 2 years ago

Refactored reply repository and discussion repository

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