1 | package com.wediscussmovies.project.repository;
|
---|
2 |
|
---|
3 | import com.wediscussmovies.project.model.Genre;
|
---|
4 | import com.wediscussmovies.project.querymodels.GenreLikes;
|
---|
5 | import org.springframework.data.jpa.repository.JpaRepository;
|
---|
6 | import org.springframework.data.jpa.repository.Modifying;
|
---|
7 | import org.springframework.data.jpa.repository.Query;
|
---|
8 | import org.springframework.data.repository.query.Param;
|
---|
9 | import org.springframework.stereotype.Repository;
|
---|
10 |
|
---|
11 | import javax.transaction.Transactional;
|
---|
12 | import java.sql.Date;
|
---|
13 | import java.util.List;
|
---|
14 |
|
---|
15 | @Repository
|
---|
16 | public interface GenreRepository extends JpaRepository<Genre, Integer> {
|
---|
17 | List<Genre> findAllByGenreType(String genre);
|
---|
18 |
|
---|
19 | @Query(value = "select new com.wediscussmovies.project.querymodels.GenreLikes(g.genreId, g.genreType, count(ug.id.userId)) from Genre g" +
|
---|
20 | " left join UserGenres ug on ug.id.genreId = g.genreId" +
|
---|
21 | " group by g.genreId, g.genreType" +
|
---|
22 | " order by count(ug.id.userId) desc")
|
---|
23 | @Transactional
|
---|
24 | List<GenreLikes> findAllWithLikes();
|
---|
25 |
|
---|
26 | @Modifying
|
---|
27 | @Query(value = "insert into project.user_genres (user_id,genre_id) values(:user_id,:genre_id)",nativeQuery = true)
|
---|
28 | @Transactional
|
---|
29 | void insertInto(@Param("user_id")Integer userId, @Param("genre_id")Integer genreId);
|
---|
30 |
|
---|
31 | @Query(value = "select new com.wediscussmovies.project.model.Genre (g.genreId, g.genreType) from Genre g" +
|
---|
32 | " ORDER BY g.genreType DESC")
|
---|
33 | List<Genre> findAllSorted();
|
---|
34 | }
|
---|