JPA

    사용자 정의 리포지토리 구성 및 페이징처리

    사용자 정의 리포지토리 사용법은 아래와 같다. 1. 사용자 정의 인터페이스 작성 2. 사용자 정의 인터페이스 구현 3. 스프링 데이터 리포지토리에 사용자 정의 인터페이스 상속 1. 사용자 정의 인터페이스 작성 package study.querydsl.repository; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; import study.querydsl.dto.MemberSearchCondition; import study.querydsl.dto.MemberTeamDto; import study.querydsl.entity.Member; import java.util.List; pu..

    API 개발 고급 - 컬렉션 조회 최적화 정리

    실전! 스프링부트와 JPA활용2 1. 엔티티 조회방식으로 우선 접근 A. 페치조인으로 쿼리수를 최적화 B. 컬렉션 최적화 i. 페이징필요 (hibernate.default_batch_fetch_size, @BatchSize 로 최적화 ii.페이징필요 x -> 페치조인사용 2. 엔티티조회방식으로 해결이 안되면 DTO조회방식사용 i. ToOne 관계에서는 V4를 사용하고 ii. ToMany관계에서는 V5를 사용하여 IN절을 활용해서 메모리에 미리조회해서 최적화를 시킨다. 3. DTO조회방식으로 해결이 안되면 NativeSQL or JdbcTemplate 참고: 엔티티 조회 방식은 페치 조인이나, hibernate.default_batch_fetch_size, @BatchSize 같이 코드를 거의 수정하지 않..

    API 개발 고급 - 컬렉션 조회 최적화

    주문내역에서 추가로 주문한 상품정보를 추가로 조회해보자. Order을 기준으로 컬렉션인 OrderItem와 Item이 필요로합니다. 조회 성능최적화에서는 OneToOne ,ManyToOny관계만 있었다. 이번에는 컬렉션인일대다 관계(OneToMany)를 조회하고 최적화 하는 방법을 알아보겠습니다. 주문 조회 V1: 엔티티 직접 노출 package jpabook.jpashop.api; import jpabook.jpashop.domain.Order; import jpabook.jpashop.domain.OrderItem; import jpabook.jpashop.repository.OrderRepository; import jpabook.jpashop.repository.OrderSearch; import..

    API 개발 기본

    API 개발 기본 회원 등록 API 회원 등록 API - V1 package jpabook.jpashop.api; import jpabook.jpashop.domain.Member; import jpabook.jpashop.service.MemberService; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import j..