99import com .querydsl .jpa .impl .JPAQueryFactory ;
1010import java .util .List ;
1111import lombok .RequiredArgsConstructor ;
12+ import org .clokey .coordinate .entity .QCoordinate ;
1213import org .clokey .domain .lookbook .dto .response .LookBookListResponse ;
1314import org .clokey .global .paging .SortDirection ;
1415import org .springframework .data .domain .PageRequest ;
@@ -25,6 +26,8 @@ public class LookBookRepositoryImpl implements LookBookRepositoryCustom {
2526 @ Override
2627 public Slice <LookBookListResponse > findAllLookBookByMemberId (
2728 Long currentMemberId , Long lastLookBookId , int size , SortDirection direction ) {
29+ QCoordinate firstCoordinate = new QCoordinate ("firstCoordinate" );
30+
2831 List <LookBookListResponse > results =
2932 queryFactory
3033 .select (
@@ -35,12 +38,15 @@ public Slice<LookBookListResponse> findAllLookBookByMemberId(
3538 JPAExpressions .select (coordinate .count ())
3639 .from (coordinate )
3740 .where (coordinate .lookBook .id .eq (lookBook .id )),
38- JPAExpressions .select (coordinate .imageUrl )
39- .from (coordinate )
40- .where (coordinate .lookBook .id .eq (lookBook .id ))
41- .orderBy (coordinate .id .asc ())
42- .limit (1 )))
41+ firstCoordinate .imageUrl ))
4342 .from (lookBook )
43+ .leftJoin (firstCoordinate )
44+ .on (
45+ firstCoordinate .lookBook .id .eq (lookBook .id ),
46+ firstCoordinate .id .eq (
47+ JPAExpressions .select (coordinate .id .min ())
48+ .from (coordinate )
49+ .where (coordinate .lookBook .id .eq (lookBook .id ))))
4450 .where (
4551 lookBook .member .id .eq (currentMemberId ),
4652 lastLookBookIdCondition (lastLookBookId , direction ))
0 commit comments