inflearn logo
강의

Course

Instructor

Developing Spring and JPA based web applications

Meeting List Lookup

안녕하세요 기선님 질문이있습니다..

227

H K

93 asked

0

음.. 다시 쿼리를 보는데

@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 모드 아닌가요 ??

 

 

 

java spring spring-boot thymeleaf jpa

Answer 1

0

communityai8509

안녕하세요, 인프런 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-viewfalse로 설정해야 합니다.

Spring Boot Reference Documentation 관련 내용

이러한 설정이나 사용한 Repository 메서드에 따라 실제 데이터베이스에서 실행되는 쿼리와 조인되는 테이블이 달라질 수 있습니다. 따라서, 여러분의 코드에서 Event 엔티티가 조인되지 않았다면, 이는 JPA 구현, 구성, 또는 사용한 Repository 메서드의 특정 방식 때문일 가능성이 큽니다.

0

H K

@EntityGraph 도 따로 설정하지 않은걸로 보입니다

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

234

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

311

1

세팅 질문있습니다.

0

341

1