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

kangsy763님의 프로필 이미지
kangsy763

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

즉시 로딩과 지연 로딩

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

작성

·

431

1

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

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

김영한님의 프로필 이미지
김영한
지식공유자

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

감사합니다.

kangsy763님의 프로필 이미지
kangsy763

작성한 질문수

질문하기