해결된 질문
작성
·
112
1
Member와 Team의 양뱡향 연관관계 강의 내용중에 궁금한게 있습니다.
위의 빨강네모의 코드로 인해 아래의 빨강네모의 select쿼리를 내보냈습니다.
그리고 위의 파랑색네모로 인해 아래의 파란색 네모의 지연select쿼리를 내보낸다고 하셨는데
[질문1]
저는 Team에 전에 배운 타입설정으로 lazy를 한 적이없는데 이렇게 한번에 불러오지 않는것에대한 의문
[질문2]
위에 빨강색 네모에서는 em.find()해서 제어가 em객체로 넘어가서 아래의 빨강네모의 select쿼리를 보낼 수 있는데
위에 파란색 네모에서는 하이버네이트로 제어가 이동할만곳이 보이지가 않아서요.
그냥 컴파일할때 코드조작(코드를 더 붙여서 제어를 조정)을 한다고 보면 되는건가요?
자세한 동작원리를 알고싶은건 아니고 호기심으로 질문 드립니다!
답변 1
1
안녕하세요. 우디님
[질문1]
@OneToMany는 기본 설정이 LAZY입니다. @ManyToOne은 기본 설정이 EAGER입니다.
[질문2]
강의중에 설명드린 내용이 있습니다. 컬렉션의 경우 엔티티가 영속 상태로 바뀌면 컬렉션도 JPA가 관리하는 특별한 컬렉션으로 변경됩니다. 여기서는 Team 엔티티를 영속 상태로 변경할 때 List Member members <- 여기가 단순 List가 아니라 하이버네이트가 이런 목적으로 사용하는 특별한 컬렉션이 됩니다.
다음을 참고해보시면 도움이 되실거에요.
https://www.inflearn.com/questions/258175
감사합니다.