source: Git/src/main/java/com/wediscussmovies/project/repository/GenreRepository.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.4 KB
Line 
1package com.wediscussmovies.project.repository;
2
3import com.wediscussmovies.project.model.Genre;
4import com.wediscussmovies.project.querymodels.GenreLikesQM;
5import org.springframework.data.jpa.repository.JpaRepository;
6import org.springframework.data.jpa.repository.Modifying;
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;
13
14@Repository
15public interface GenreRepository extends JpaRepository<Genre, Integer> {
16 List<Genre> findAllByGenreType(String genre);
17
18 @Query(value = "select new com.wediscussmovies.project.querymodels.GenreLikesQM(g.genreId, g.genreType, count(ug.id.userId)) from Genre g" +
19 " left join UserGenres ug on ug.id.genreId = g.genreId" +
20 " group by g.genreId, g.genreType" +
21 " order by count(ug.id.userId) desc, g.genreType asc")
22 @Transactional
23 List<GenreLikesQM> findAllWithLikes();
24
25 @Modifying
26 @Query(value = "insert into project.user_genres (user_id,genre_id) values(:user_id,:genre_id)",nativeQuery = true)
27 @Transactional
28 void insertInto(@Param("user_id")Integer userId, @Param("genre_id")Integer genreId);
29
30 @Query(value = "select new com.wediscussmovies.project.model.Genre (g.genreId, g.genreType) from Genre g" +
31 " ORDER BY g.genreType DESC")
32 List<Genre> findAllSorted();
33}
Note: See TracBrowser for help on using the repository browser.