작성
·
228
0
각 테이블에 ManyToOne, OneToMany 어노테이션을 입력한게 각 테이블의 외래키로써의 역할을 한다고 이해했는데요 맞는 건가요?
그럼 JpaRepository의 findById메소드를 실행하는 경우 Jpar가 알아서 해당되는 테이블끼리 join을 시키는 건가요? 그럼 복잡한 join을 하는경우 쿼리가 느려지는 경우 어떻게 확인할 수 있나요?
사용량 이슈를 줄이기 위해 FetchType.Lazy를 선언하여 로딩될때 가져오는건가요?
질문에 두서가 없네요...ㅎㅎ
답변 1
1
안녕하세요, 이도원입니다.
ManyToOne, OneToMany와 같은 설정은 JPA를 이용하여 JOIN과 같은 참조 데이터를 가져올 때 사용합니다. 다만, 로딩 시 모든 데이터를 같이 가져오게 되면, 속도면에서 손해를 볼 수 있기 때문에, 해당 데이터를 필요한 시점에 다시 가져오는 (결과적으로 SQL을 2번 실행) Lazy 설정을 할 수 있습니다. 속도면에서 지연 로딩(Lazy)이 유리할 수도 있으나, 참조 관계의 데이터를 자주 사용한다면, 즉시 로딩을 사용하는 편이 더 좋을 수 있습니다.
감사합니다.