김영한

    [QueryDSL] EP1. QueryDSL 설정

    QueryDSL 사용에 앞서 설정을 해주도록 하겠습니다. 기본적으로 QueryDSL은 start.io 에서 dependency를 제공하지 않기 때문에 사용하기 위해서는 직접 설정해주어야 합니다. build.gradle 설정 plugins //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" dependency //querydsl 추가 implementation 'com.querydsl:querydsl-jpa' 설정코드 plugin과 같이 맞물려서 빌드될때 SourceSets querydslDir이 있으면 인텔리제이같은 IDE들이 자동으로 소스폴더에 import 해줍니다. configurations querydsl이 compileCla..

    EP3. 컬렉션 조회 최적화 - 1

    주문내역에서 주문한 상품정보까지 추가로 조회 해보자. EP2 에서는 @XToOne 을 조회하는 기능을 최적화 했었다. 2021.04.06 - [Web/JPA] - EP2. 지연 로딩과 조회 성능 최적화 여기서는 @XToMany인 컬렉션을 조회하는 기능을 구현하고 최적화 해보자. Order 엔티티에서 컬렉션인 OrderItem과 OrderItem의 Item이 필요하다. Item도 Order 기준으로는 컬렉션이다. Order package jpabook.jpashop.domain; import lombok.AccessLevel; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import javax.persistence..

    EP2. 지연 로딩과 조회 성능 최적화

    주문을 조회하는 API를 설계해보았다. package jpabook.jpashop.api; import jpabook.jpashop.domain.Order; import jpabook.jpashop.repository.OrderRepository; import jpabook.jpashop.repository.OrderSearch; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * XToOne (ManyToOne, One..

    EP7. 다양한 연관관계 매핑

    연관관계 매핑시 주의할 점 다중성 단방향, 양방향 연관관계의 주인 다중성 다대일 : 중요 일대다 : 잘 안씀 일대일 : 별로 안씀 다대다 : 아예 안씀 단방향, 양방향 테이블 : 외래키 하나만 있어도 가능하니까 방향의 개념이 없다. 객체 : 한쪽에서 다른쪽을 보려면 참조를 해야한다. 그래서 방향이 있다. (사실 양방향은 서로 단방향이 2개 있는 것이다.) 연관관계의 주인 외래키가 있는 곳 다양한 연관관계 매핑 방법 다 대 일 : @ManyToOne 단방향 외래키가 있는 곳에 참조를 넣고 매핑시킨다. 코드 Member @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; 양방향 다대일 관계에 일대다를 추가한 것이 양방향이다. (추가해준다해도 테이블에 영..