|
|
@ -16,13 +16,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
package sample.data.jpa.service;
|
|
|
|
package sample.data.jpa.service;
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import sample.data.jpa.domain.City;
|
|
|
|
import sample.data.jpa.domain.City;
|
|
|
|
import sample.data.jpa.domain.Hotel;
|
|
|
|
import sample.data.jpa.domain.Hotel;
|
|
|
|
import sample.data.jpa.domain.HotelSummary;
|
|
|
|
import sample.data.jpa.domain.HotelSummary;
|
|
|
|
import sample.data.jpa.domain.RatingCount;
|
|
|
|
import sample.data.jpa.domain.RatingCount;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.data.domain.Page;
|
|
|
|
import org.springframework.data.domain.Page;
|
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
|
import org.springframework.data.domain.Pageable;
|
|
|
|
import org.springframework.data.jpa.repository.Query;
|
|
|
|
import org.springframework.data.jpa.repository.Query;
|
|
|
@ -32,11 +32,11 @@ interface HotelRepository extends Repository<Hotel, Long> {
|
|
|
|
|
|
|
|
|
|
|
|
Hotel findByCityAndName(City city, String name);
|
|
|
|
Hotel findByCityAndName(City city, String name);
|
|
|
|
|
|
|
|
|
|
|
|
@Query("select new sample.data.jpa.domain.HotelSummary(h.city, h.name, avg(r.rating)) "
|
|
|
|
@Query("select h.city as city, h.name as name, avg(r.rating) as averageRating "
|
|
|
|
+ "from Hotel h left outer join h.reviews r where h.city = ?1 group by h")
|
|
|
|
+ "from Hotel h left outer join h.reviews r where h.city = ?1 group by h")
|
|
|
|
Page<HotelSummary> findByCity(City city, Pageable pageable);
|
|
|
|
Page<HotelSummary> findByCity(City city, Pageable pageable);
|
|
|
|
|
|
|
|
|
|
|
|
@Query("select new sample.data.jpa.domain.RatingCount(r.rating, count(r)) "
|
|
|
|
@Query("select r.rating as rating, count(r) as count "
|
|
|
|
+ "from Review r where r.hotel = ?1 group by r.rating order by r.rating DESC")
|
|
|
|
+ "from Review r where r.hotel = ?1 group by r.rating order by r.rating DESC")
|
|
|
|
List<RatingCount> findRatingCounts(Hotel hotel);
|
|
|
|
List<RatingCount> findRatingCounts(Hotel hotel);
|
|
|
|
}
|
|
|
|
}
|
|
|
|