안녕하세요 기선님 질문이있습니다..
227
93 asked
음.. 다시 쿼리를 보는데
@GetMapping("/events/{id}")
public String getEvent(@CurrentUser Account account, @PathVariable String path, @PathVariable Long id,
Model model) {
model.addAttribute(account);
model.addAttribute(eventRepository.findById(id).orElseThrow());
model.addAttribute(studyService.getStudy(path));
return "event/view";
}이쪽을 탈때
쿼리가 총 3개 나가는건 이해 했는데
마지막에 enrollment 엔티티 가져올때 쿼리리는 왜
account 랑만 조인 하나요 ?

연관관계를 보면 Event도있는데
Event도 조인해야 하는거 아닌가요 ??
@ManToOne 관계라 Eager 모드 아닌가요 ??
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다.
다음으로 질문하신 내용은 @ManyToOne 관계와 Eager, Lazy 로딩에 대해 관련된 부분입니다.
JPA에서 @ManyToOne 관계는 기본적으로 Eager 로딩(strategy)을 가집니다. 이는 관계가 설정된 엔티티를 조회할 때 연관된 엔티티도 함께 조회하기위해 즉각적으로 데이터베이스를 통해 로딩한다는 것을 의미합니다. 따라서, 이론적으로는 Enrollment 엔티티를 조회할 때 Event 엔티티도 함께 조회(조인)되어야 합니다.
그러나, 실제로 쿼리가 어떻게 실행되고 조인이 이루어지는지는 여러 요소에 의존합니다. 예를 들어, Spring Data JPA의 Repository 메서드 중 명시적으로 조인을 지정하지 않았거나, @EntityGraph 어노테이션을 사용하여 특정 연관관계를 Eager 또는 Lazy 로딩으로 명시적으로 변경했을 수도 있습니다.
또한, OpenEntityManagerInViewInterceptor 설정에 따라서도 영향을 받을 수 있습니다. Spring Boot에서는 웹 애플리케이션을 운영할 때에 ‘Open EntityManager in View’ 패턴을 기본적으로 적용하여 웹 뷰에서 지연 로딩(lazy loading)을 가능하게 합니다. 만약 이러한 행위를 원치 않는 경우, ‘application.properties’에서 spring.jpa.open-in-view를 false로 설정해야 합니다.
Spring Boot Reference Documentation 관련 내용
이러한 설정이나 사용한 Repository 메서드에 따라 실제 데이터베이스에서 실행되는 쿼리와 조인되는 테이블이 달라질 수 있습니다. 따라서, 여러분의 코드에서 Event 엔티티가 조인되지 않았다면, 이는 JPA 구현, 구성, 또는 사용한 Repository 메서드의 특정 방식 때문일 가능성이 큽니다.
Study 개설하는 로직에 대해서 궁금점이 있습니다.
0
53
1
앱 재시작 후 회원가입
0
99
1
app.host 관련 질문이 있습니다
0
96
1
강의 버전 정보
0
123
1
event, study 참조
0
218
2
비밀번호 변경 로직 질문있습니다.
0
133
1
프로필 수정 처리 merge 질문입니다.
0
104
1
회원가입 성공 후 redirect이동시 권한 질문
0
489
3
HtmlEmailService 개발하다 생긴 의문입니다
0
247
2
postgreSql 연결하여 JPA 를 통해 테이블 생성시 ZONE 테이블 생성에서 에러가 납니다
0
428
2
수업질문 [긴급] 로그인안되는 문제 말씀해주시는 부분 반영해서 최종 질문드립니다
0
258
2
[긴급-재업로드]수업질문 로그인 안 되는 문제
0
233
1
[긴급] 로그인해도 네비게이션 바가 안 바뀌고 있습니다!! 로그인이 안 됩니다 도와주세요
0
275
1
cropper 오류 문제로 질문드립니다..
0
284
2
authentication관련 질문...
0
493
2
모임참가 취소 할때 로직 질문
0
349
3
HTML코드 및 강의 중간자료들
0
677
3
springSecurity
0
518
2
버전 질문입니다.
0
299
1
부트스트랩, css
0
350
2
영속성 컨텍스트 질문
0
245
2
다시 강의를 보니 드는생각..
0
349
2
5:50에 나오는 HTML코드는 어디서 찾을 수 있나여?
0
310
1
세팅 질문있습니다.
0
341
1

