inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

@EntityGraph

EntityGraph 에서 복합키 조회시 질문드립니다.

169

그리즐리

작성한 질문수 1

0

 

public class Product {
@Id
Long productId;

String name;
}

public class Member {
@Id
Long uid;

String name;
}

public class MemberInterest{
@Id
Long sequence;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "uid", insertable = false, updatable = false, referencedColumnName = "wine_id")
Member member;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "product_id", insertable = false, updatable = false, referencedColumnName = "wine_id")
Product product;

int ratingPoint;
}

public class PurchaseHistory {
@Id
Long sequence;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "uid", insertable = false, updatable = false, referencedColumnName = "wine_id")
Member member;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "product_id", insertable = false, updatable = false, referencedColumnName = "wine_id")
Product product;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumns({
@JoinColumn(name = "uid", referencedColumnName = "uid", insertable = false, updatable = false),
@JoinColumn(name = "wine_id", referencedColumnName = "wine_id", insertable = false, updatable = false)
})
MemberInterest memberInterest;
}

안녕하세요 강사님

강사님의 여러 강의를 잘 듣고있습니다.

질문이 두가지 있는데요 위와 같은 관계가 있다고 가정할 때

아래와같이 구매이력을 EntityGraph를 통해 가져오려고 합니다.

@Repository
public interface PurchaseHistoryRepository extends JpaRepository<PurchaseHistory, Long> {
@EntityGraph(attributePaths = {"member", "product", "memberInterest"})
Page<PurchaseHistory> findByUid(String uid, Pageable pageable);
}

하지만 실제로 동작시 MemberInterest 부분에서 N+1 문제가 발생하는데요

ToOne 관계이면, 패치조인이 되어 N+1이 발생하면안될것같은데 이 경우는 왜 발생할까요?

그리고 어떻게 해결해야할지도 궁금합니다.

답변기다리곘습니다 감사합니다.

JPA spring-boot java spring

답변 1

0

김영한

안녕하세요. 그리즐리님

다음을 참고해주세요.

https://www.inflearn.com/questions/270577

감사합니다.

changeTeam 메서드 질문

0

34

1

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

0

87

1

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

0

126

3

MemberRepository 구현체

0

71

1

pdf 표현 질문드립니다.

0

77

1

로그가 남지 않는 문제.

0

98

1

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

0

78

2

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

0

75

2

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

0

102

2

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

0

59

1

스캔대상 질문드립니다.

0

48

1

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

0

92

1

save() vs saveAndFlush DB 통신 횟수

0

58

1

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

0

91

2

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

0

163

3

bulk insert 질문입니다.

0

191

2

교만했던 것 같아요.

0

152

1

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

0

154

2

동적 테이블에 대한 질문

0

89

1

영속성 전이와 연관관계

0

141

2

강의 10:25 질문

0

78

1

단건 update 질문

0

104

2

엔티티 와 도메인의 경계

0

129

1

UsernameOnlyDto 타입 type mismatch 오류

0

123

1