본문 바로가기

전체 글348

Section 6-5. 스프링 데이터 페이징 활용3 - 컨트롤러 개발 컨트롤러는 다음과 같이 작성한다. package study.querydsl.controller; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import study.querydsl.dto.MemberSearchCondition; import study.querydsl.dto.MemberTeamDto;.. 2023. 1. 29.
Section 6-4. 스프링 데이터 페이징 활용2 - CountQuery 최적화 이전 장에서 데이터 내용과 전체 카운트를 조회하는 방법에 대해 알아보았다. 그런데 만약 count 쿼리가 생략 가능한 경우에는 성능을 최적화 하는 방법이 있지않을까? count 쿼리가 생략 가능한 예시의 경우는 다음과 같다. 페이지 시작이면서 컨텐츠 사이즈가 페이지 사이즈보다 작을 때 마지막 페이지 일 때 (offset + 컨텐츠 사이즈를 더해서 전체 사이즈 구함) 이때는 스프링 데이터 라이브러리가 제공하는 PageableExecutionUtils.getPage()로 최적화할 수 있다. @Override public Page searchPageComplex(MemberSearchCondition condition, Pageable pageable) { List content = queryFactory ... 2023. 1. 29.
Section 6-3. 스프링 데이터 페이징 활용1 - Querydsl 페이징 연동 스프링 데이터의 Page, Pageable을 활용해 Querydsl과 어떻게 같이 적용하는지 알아보고자 한다. 먼저 기존에 작성한 MemberRepositoryCustom 인터페이스에 페이징 추상메서드를 2가지 추가한다. package study.querydsl.repository; import org.springframework.data.domain.Page; import study.querydsl.dto.MemberSearchCondition; import study.querydsl.dto.MemberTeamDto; import java.awt.print.Pageable; import java.util.List; public interface MemberRepositoryCustom { List se.. 2023. 1. 29.
Section 6-2. 사용자 정의 리포지토리 사용자 정의 리포지토리 스프링 데이터 jpa를 쓰면서 복잡한 기능을 구현하거나 커스터마이징이 필요할 때 사용하는 사용자 정의 리포지토리에 대해 알아보고자 한다. 결국 Querydsl을 쓰려면 구현코드를 만들어야 하는데 스프링 데이터 jpa는 인터페이스로 동작한다. 따라서, 사용자 정의 리포지토리를 이용해 구현코드를 만들어주어야 한다!! 사용자 정의 리포지토리 사용법 1. 사용자 정의 리포지토리 작성 package study.querydsl.repository; import study.querydsl.dto.MemberSearchCondition; import study.querydsl.dto.MemberTeamDto; import java.util.List; public interface MemberRe.. 2023. 1. 28.
Section 6-1. 스프링 데이터 JPA 리포지토리로 변경 지금까지는 순수 JPA를 사용해서 리포지토리를 작성하였었다. 그런데 스프링 데이터 JPA를 사용하면 save, findAll과 같이 기본적인 메서드를 제공해주기 때문에 편리하게 사용이 가능하다. 하지만 스프링 데이터 JPA가 기본적으로 제공하는 기능을 넘어서는 부분은 추가로 작성을 해주어야 한다. 따라서, 스프링 데이터 JPA를 사용하는 MemberRepository 인터페이스를 다음과 같이 작성한다. package study.querydsl.repository; import org.springframework.data.jpa.repository.JpaRepository; import study.querydsl.entity.Member; import java.util.List; public interfa.. 2023. 1. 28.