강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

terecal님의 프로필 이미지
terecal

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

엔티티 설계시 주의점

n+1 문제 개념이 이게 맞나요?

작성

·

322

1

오더 엔티티에서 패치 타입이  아래와 같다면

    @ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "member_id")
private Member member;

오더가 100일 경우 각각의 오더에 대한 멤버 정보를 조회하기 위해 쿼리를 1번씩 더 날리게 됨 

그래서 오더가 100개인것에 대해 1번씩 더한다고 해서 

n+1 문제가 되는건가요? 그럼 성능상 문제가 될수 있고 

    @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id")
private Member member;

이렇게 바꾸면  오더 엔티티를 조회할때 오더 테이블만 조회하는게 되서 성능상으로 무리가 안간다는 거죠?

퀴즈

41%나 틀려요. 한번 도전해보세요!

일대다(One-to-Many) 관계에서 외래 키(Foreign Key)는 일반적으로 어느 쪽에 위치해야 할까요?

'일(One)' 쪽에 위치합니다.

'다(Many)' 쪽에 위치합니다.

관계의 소유자(Owner)가 아닌 쪽에 위치합니다.

관계 설정에 따라 달라지므로 정해진 규칙이 없습니다.

답변 1

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. terecal님

다음을 참고해주세요.

https://www.inflearn.com/questions/39516

감사합니다.

terecal님의 프로필 이미지
terecal

작성한 질문수

질문하기