• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

22.02.18 11:10 작성 조회수 142

0

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

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

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

 

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

답변 1

답변을 작성해보세요.

1

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

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

감사합니다.