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

ghks2047님의 프로필 이미지
ghks2047

작성한 질문수

[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발

게시물 조회를 위한 Post Entity와 User Entity와의 관계 설정

데이터를 가져오는 부분에 궁금한점이 있습니다.

작성

·

228

0

각 테이블에 ManyToOne, OneToMany 어노테이션을 입력한게 각 테이블의 외래키로써의 역할을 한다고 이해했는데요 맞는 건가요?

그럼 JpaRepository의 findById메소드를 실행하는 경우 Jpar가 알아서 해당되는 테이블끼리 join을 시키는 건가요? 그럼 복잡한 join을 하는경우 쿼리가 느려지는 경우 어떻게 확인할 수 있나요?

사용량 이슈를 줄이기 위해 FetchType.Lazy를 선언하여 로딩될때 가져오는건가요?

 

질문에 두서가 없네요...ㅎㅎ

답변 1

1

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다. 

ManyToOne, OneToMany와 같은 설정은 JPA를 이용하여 JOIN과 같은 참조 데이터를 가져올 때 사용합니다. 다만, 로딩 시 모든 데이터를 같이 가져오게 되면, 속도면에서 손해를 볼 수 있기 때문에, 해당 데이터를 필요한 시점에 다시 가져오는 (결과적으로 SQL을 2번 실행) Lazy 설정을 할 수 있습니다. 속도면에서 지연 로딩(Lazy)이 유리할 수도 있으나, 참조 관계의 데이터를 자주 사용한다면, 즉시 로딩을 사용하는 편이 더 좋을 수 있습니다. 

감사합니다. 

ghks2047님의 프로필 이미지
ghks2047

작성한 질문수

질문하기