일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- jpa lazy
- 스프링시큐리티
- open-session-in-view
- fetch join
- 동적파라미터
- IOC
- 토비의 스프링
- 그래프큐엘
- 소프트웨어의 품격
- 기능적 요구사항
- spring formatter
- 스프링 포매터
- method refetence
- 수정자주입
- ioc컨테이너
- 스프링 시큐리티 설정
- 스프링
- 스프링di
- 도커 이미지 빌드
- 자바 필터
- kotlin ::
- 정적팩토리메서드
- Spring
- 비기능적 요구사항
- Atomicity
- kotlin 리팩터링
- java predicate
- jpa no session
- 생성자주입
- 스프링부트 도커
Archives
- Today
- Total
목록fetch join (1)
공부기록
@EntityGraph
@EntityGraph fetch join fetch가 LAZY로 되어있어도 연관된 객체를 즉시 조회한다. 위와 같이 Member -> Team 관계를 맺고 있을 때 fetch 옵션이 LAZY라면 Member 엔티티를 조회할 때, 연관된 Team 엔티티는 프록시 객체로 조회된다. 이때 셀렉트 쿼리는 Member만을 찾는 셀렉트쿼리 한번이 나가고, Member.getTeam().getName(); 같이 프록시 객체의 실제값을 호출할 때 그제서야 Team에 대한 쿼리도 나간다. 만약 Team이 두 개라면 N + 1문제가 터진다. 1은 Member, N(2)은 Team. 다음과 같이 fetch 조인으로 Member와 Team을 조인시켜 한방쿼리로 해결한다. @Query("select m from Member ..
JPA
2020. 2. 11. 02:49