diff --git a/src/main/java/com/codeit/todo/repository/GoalRepository.java b/src/main/java/com/codeit/todo/repository/GoalRepository.java index 57f14c9..5403c50 100644 --- a/src/main/java/com/codeit/todo/repository/GoalRepository.java +++ b/src/main/java/com/codeit/todo/repository/GoalRepository.java @@ -18,7 +18,12 @@ public interface GoalRepository extends JpaRepository { Slice findByUser_UserId(@Param("userId") int userId, Pageable pageable); - Slice findByGoalIdAndUser_UserId(@Param("lastGoalId") Integer lastGoalId, @Param("userId") int userId, Pageable pageable); + @Query( + "SELECT g FROM Goal g " + + "WHERE g.user.userId = :userId " + + "AND g.goalId > :lastGoalId " + ) + Slice findByGoalIdAndUser_UserIdAndGoalIdGreaterThan(@Param("userId") int userId, @Param("lastGoalId")int lastGoalId, Pageable pageable); @Query(""" select g @@ -40,4 +45,5 @@ public interface GoalRepository extends JpaRepository { Slice findByUserAndHasTodosAfterLastGoalId(@Param("lastGoalId") Integer lastGoalId, @Param("userId") int userId, Pageable pageable, @Param("today") LocalDate today); List findByGoalTitleContains(@Param("keyword") String keyword); + } diff --git a/src/main/java/com/codeit/todo/service/goal/impl/GoalServiceImpl.java b/src/main/java/com/codeit/todo/service/goal/impl/GoalServiceImpl.java index e48ec34..5d2687f 100644 --- a/src/main/java/com/codeit/todo/service/goal/impl/GoalServiceImpl.java +++ b/src/main/java/com/codeit/todo/service/goal/impl/GoalServiceImpl.java @@ -137,7 +137,8 @@ private Slice getGoalsPagination(int userId, ReadTodoCompleteWithGoalReque if (Objects.isNull(request.lastGoalId()) || request.lastGoalId() <= 0) { goals = goalRepository.findByUser_UserId(userId, pageable); } else { - goals = goalRepository.findByGoalIdAndUser_UserId(request.lastGoalId(), userId, pageable); + int lastGoalId = request.lastGoalId(); + goals = goalRepository.findByGoalIdAndUser_UserIdAndGoalIdGreaterThan(userId, lastGoalId, pageable); } return goals; }