• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

쿼리에 fetch 쓰는 부분

23.11.26 23:00 작성 조회수 186

1

쿼리에 fetch 쓰는 부분과

 

Entity 자체에서

 

FetchType.LAZY 써주는것과

 

같은 방법으로 볼 수 있을까요?

답변 1

답변을 작성해보세요.

0

안녕하세요, 별볼일있는 개발자님! 질문 남겨주셔서 감사합니다! 😊

 

  • 쿼리에 fetch를 쓰는 것 (fetch join)

  • Entity에서 옵션으로 FetchType.LAZY 를 주는 것

 

은 다른 설정이라고 봐주시면 될 것 같아요! (즉 다른 방법입니다!)

 

차이점을 설명드려보면 다음과 같습니다! A Entity와 B Entity가 1 : N 관계라고 해볼게요!

FetchType.LAZY 를 사용하게 되면, A Entity를 가져올 때 B 엔티티까지 가져오지 않고, B 가 정말 필요해진 순간, B 데이터를 가져오죠. 그래서 게으르다(lazy)고 표현하는겁니다! 만약 게으르지 않았다면, A를 가져올 때 B 까지 한 번에 가져올 수 있었을 테니까요!


반면, fetch join은 FetchType.LAZY 와 반대입니다. fetch join은 join을 통해 AB 를 가져올 때 한 번에 가져오는 기능입니다.

 

  • fetch join은 함께 가져오다

  • FetchType.LAZY 는 가져올 때 게으르게 가져오다

이렇게 기억하시면 이해에 조금 더 도움 되실 것 같아요!

또 궁금하신 점 있으시면 편하게 질문 남겨주세요. 감사합니다~!! 🙏 🙏