inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

스프링 데이터 JPA 페이징과 정렬

fetch join 쿼리 질문 드립니당

434

rr8602

작성한 질문수 11

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예

[질문 내용]

 

페이징 처리를 하다가 갑자기 궁금해서(이전에 배웠는데 까먹은걸지도..모르겠네요)

 

<질문> : @Query에서 페치 조인으로 팀을 가져왔는데, Team 엔티티에 있는 List<Members> members의 값은 왜 결과 쿼리에서 조회가 되지 않았는지 궁금합니다.

패치조인을 하게 되면 member와 team의 모든 필드 값을 다 select 하게 되는거 아니였나요'? 맞다면 리스트 members도 가져와야 된다고 생각하는데 왜 안되는지 궁금하고, 가져올 수 있는 방법이 따로 있는 건지도 궁금합니다.

 

@Query(value = "select m from Member m left join fetch m.team t",
countQuery = "select count(m) from Member m")
Page<Member> findByAge(int age, Pageable pageable);

 

 

@Test
public void paging(){
//given
memberRepository.s
ave(new Member("member1", 10));
memberRepository.
save(new Member("member2", 10));
memberRepository
.save(new Member("member3", 10));
memberRepositor
y.save(new Member("member4", 10));
memberReposito
ry.save(new Member("member5", 10));
memberReposit
ory.save(new Member("member6", 10));

int age = 10;
PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Sort.Direction.DESC, "username"));

//when
Page<Member> page = memberRepository.findByAge(age, pageRequest); // PageRequest의 부모 인터페이스가 Page

 

 

package study.datajpa.entity;

import jakarta.persistence.*;
import lombok.*;

import java.util.ArrayList;
import java.util.List;

import static lombok.AccessLevel.PROTECTED;

@Entity
@Getter @Setter
@NoArgsConstructor(access = PROTECTED)
@ToString(of = {"id", "name"})
public class Team {

@Id @GeneratedValue
@Column(name = "team_id")
private Long id;
private String name;

@OneToMany(mappedBy = "team")
private List<Member> members = new ArrayList<>();

public Team(String name) {
this.name = name;
}
}

 


java spring spring-boot jpa

답변 1

0

김영한

안녕하세요. rr8602님

fetch join의 경우 fetch join 방향으로 초기화가 진행됩니다.

member -> team으로는 초기화가 되었지만 team -> member 방향으로는 초기화가 진행되지 않습니다.

감사합니다.

1

rr8602

감사합니다!

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

69

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

107

3

MemberRepository 구현체

0

57

1

pdf 표현 질문드립니다.

0

62

1

로그가 남지 않는 문제.

0

81

1

테스트 라이브러리가 강의는 junit4가 맞나요??

0

70

2

pdf 파일과 차이점이 있는 것같은데 문제 없나요?

0

72

2

@PrePersist, @PreUpdate 호출 시점 질문드립니다.

0

91

2

Sort 인터페이스는 잘 사용 안하나요?

0

52

1

스캔대상 질문드립니다.

0

46

1

하이버네이트6에서의 최적화에 이은 질문

0

85

1

save() vs saveAndFlush DB 통신 횟수

0

53

1

순수 JPA 리포지토리 코드 수정부분

0

86

2

bulk연산 후 flush하는 이유를 모르겠어요

0

152

3

bulk insert 질문입니다.

0

178

2

교만했던 것 같아요.

0

147

1

RESTful 강의는 안하시는 건지 궁금합니다.

0

147

2

동적 테이블에 대한 질문

0

85

1

영속성 전이와 연관관계

0

130

2

강의 10:25 질문

0

74

1

단건 update 질문

0

95

2

엔티티 와 도메인의 경계

0

127

1

UsernameOnlyDto 타입 type mismatch 오류

0

119

1

Projection 개념과 데이터 전달과정에 대해 질문 있습니다.

0

136

1