From fc4a7c043c5f9b887612520c5b6e3d515f11b071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B0=95=EB=AF=BC=EC=A0=95?= Date: Sun, 8 Sep 2024 23:02:00 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20=EB=8F=99=EC=A0=81=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=20=EC=88=98=EC=A0=95=20(#34)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/MovieQueryRepository.java | 22 ++++++++----------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/back/funding/src/main/java/com/ssafy/funding/repository/MovieQueryRepository.java b/back/funding/src/main/java/com/ssafy/funding/repository/MovieQueryRepository.java index 34c7437..9bc3feb 100644 --- a/back/funding/src/main/java/com/ssafy/funding/repository/MovieQueryRepository.java +++ b/back/funding/src/main/java/com/ssafy/funding/repository/MovieQueryRepository.java @@ -17,7 +17,7 @@ import com.ssafy.funding.dto.response.MovieGenreResponse; import java.util.List; import lombok.RequiredArgsConstructor; -import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Slice; import org.springframework.data.domain.SliceImpl; import org.springframework.stereotype.Repository; @@ -30,7 +30,7 @@ public class MovieQueryRepository { // private final ConditionFilter conditionFilter; public Slice findByGenre( - GenreSearchCondition condition, PageRequest pageRequest) { + GenreSearchCondition condition, Pageable pageable) { final List movies = jpaQueryFactory @@ -43,18 +43,15 @@ public Slice findByGenre( .where(genre.parentGenreId.eq(condition.getParentGenreId())) .groupBy(movie.id) .orderBy(orderSpecifier(condition.getOrder(), movie.id)) - .offset(pageRequest.getOffset()) - .limit(pageRequest.getPageSize()) + .offset(pageable.getOffset()) + .limit(pageable.getPageSize() + 1) .fetch(); return new SliceImpl( - getCurrentPageMovies(movies, pageRequest), - pageRequest, - hasNext(movies, pageRequest)); + getCurrentPageMovies(movies, pageable), pageable, hasNext(movies, pageable)); } private OrderSpecifier orderSpecifier(String orderByField, NumberPath movieId) { - Expression likeCountExpression = JPAExpressions.select(movieLike.count()) .from(movieLike) @@ -78,15 +75,14 @@ private static ConstructorExpression makeProjections() { } private List getCurrentPageMovies( - final List movies, final PageRequest pageRequest) { - if (hasNext(movies, pageRequest)) { + final List movies, final Pageable pageable) { + if (hasNext(movies, pageable)) { return movies.subList(0, movies.size() - 1); } return movies; } - private boolean hasNext( - final List challenges, final PageRequest pageRequest) { - return challenges.size() > pageRequest.getPageSize(); + private boolean hasNext(final List challenges, final Pageable pageable) { + return challenges.size() > pageable.getPageSize(); } }