/
ilgizok
/
MyLibService
Обзор
Документация
Войти
/
ilgizok
/
MyLibService
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
Test
src/main/java/com/example/mylib/repository/RatingRepository.java
24 строки
1022 B
ilgiz
add
20 апр 2025, 01:03
20 апр 2025, 01:03
981190d
Код
Авторство
О чём код?
package com.example.mylib.repository; import com.example.mylib.dto.RatingDTO; import com.example.mylib.entity.Book; import com.example.mylib.entity.Rating; import com.example.mylib.entity.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; import java.util.List; import java.util.Optional; @Repository public interface RatingRepository extends JpaRepository<Rating, Integer> { Optional<Rating> findByBookAndUser(Book book, User user); @Query("SELECT new com.example.mylib.dto.RatingDTO(rt.id, u.id, u.username, rt.rating, rt.createdAt) " + "FROM Rating rt JOIN rt.user u WHERE rt.book.bookId = :bookId") List<RatingDTO> findRatingsByBookId(@Param("bookId") int bookId); @Query("SELECT AVG(r.rating) FROM Rating r WHERE r.book.bookId = :bookId") Double findAverageRatingByBookId(@Param("bookId") int bookId); }