🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

eager를 굳이 사용할 이유가 있나요 ??

20.06.18 22:04 작성 조회수 340

0

1. EAGER 를 굳이 사용을 하지않고 그냥 두면 알아서 join 해서 같이 로딩이 되는데 굳이 사용되는 이유가 있나요 ??? default가 지연로딩인 OneToMany, ManyToMany의 경우에 EAGER 시켜주기 위함인가요 ?

2. 

member.java의 lazy를 없애고 그냥 team 으로 한 번 실험을 해봤는데 지연로딩이 된 것 같습니다.  이 이유는 team이 OneToMany로 기본이 지연로딩이기 때문인가요? 지연로딩과 프록시.. 한 번에 감을 확 잡기가 힘드네요 ㅜㅜ

답변 2

·

답변을 작성해보세요.

1

1. EAGER 를 굳이 사용을 하지않고 그냥 두면 알아서 join 해서 같이 로딩이 되는데 굳이 사용되는 이유가 있나요 ??? default가 지연로딩인 OneToMany, ManyToMany의 경우에 EAGER 시켜주기 위함인가요 ?

-> ManyToOne, OneToOne 관계는 기본이 EAGER입니다. 그래서 join이 발생했을 것으로 추정됩니다.

2. member.java의 lazy를 없애고 그냥 team 으로 한 번 실험을 해봤는데 지연로딩이 된 것 같습니다.  이 이유는 team이 OneToMany로 기본이 지연로딩이기 때문인가요? 지연로딩과 프록시.. 한 번에 감을 확 잡기가 힘드네요 ㅜㅜ

-> 네 OneToMany, ManyToMany는 기본이 지연로딩 입니다.

실무에서는 꼭! 모두 지연로딩으로 설정하고 사용하세요^^!

0

열심히들어요님의 프로필

열심히들어요

2022.01.03

ManyToOne , OneToOne 관계는 굳이 기본을 EAGER로 한 이유가 있을까요? LAZY가 default이어야 할것 같은데 말이죠...

네 저도 같은 생각입니다. 다만 JPA 스펙을 처음 만든 시점이 너무 오래되어서 당시에는 이런 생각이 맞았을 수도 있습니다.

감사합니다.

채널톡 아이콘