inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 데이터 JPA

@Query, 리포지토리 메소드에 쿼리 정의하기

Query관련으로 질문이 있습니다 !!

200

정윤성

작성한 질문수 24

0

위와같이 Product, Restaurant 두개의 엔티티를 만들었는데

Product엔티티자체가 Restaurant엔티티에 포함된다고 생각해서 Product엔티티의 삭제 및 생성의 관해선 Restaurant이 관할해야한다고 생각해 cascade와 Repository도 Restaurant만 만들었는데요 이러한 방식이 괜찮을까요 ?

정리하면

1.Restaurant를 애그리거트 루트로 보고 Product에 접근하기위해선 항상 Restaurant을 거쳐야된다고 생각해 위와같은 구조로 만들었습니다 괜찮을까요 ?

2.

(실제 테스트는 해보지않은 부분이라 틀릴 수 있습니다 ㅠㅠ 의미만 봐주세요 )

1번에서 이어지는 부분인데 RestaurantRepository에서 Product의 Id를통해 Restaurant엔티티를 가져오는 부분입니다 이러한 코드는 어떻게 생각하시나요 ?

- Restaurant엔티티를 통해 Product에 접근해야된다고 생각해서 ProductRepository를 만들지 않았습니다

- 그렇기때문에 1:N 중 1쪽에서 탐색하고있는데 괜찮을까요 ?

JPA spring-boot spring java

답변 1

1

김영한

안녕하세요. 정윤성님

Restaurant, Product 정도의 관계는 사실 둘다 각각의 AggregateRoot로 봐야 합니다.

그런데 학습용이라고 가정하면 나머지 질문하신 내용들은 대부분 맞습니다.

감사합니다.

0

정윤성

만약 위처럼 루트엔티티와 노드엔티티의 관계가 있을때 2번 질문처럼 노드엔티티에 접근하려면 루트엔티티를 먼저 가져온 뒤 엔티티그래프를 통해 노드엔티티에 접근하는것이 맞는걸까요 ? 성능적인 부분에서도 조인을 사용하기에 떨어질 수 있는데 아니라면 혹시 어떠한 방식으로 접근해야할지 간략하게만 부탁드리겠습니다 !!

+ 추가적으로 애그리거트를 나누실때 선생님은 어떠한 기준으로 나누는지에 대해 조언좀 부탁드리겠습니다 !!

0

김영한

만약 위처럼 루트엔티티와 노드엔티티의 관계가 있을때 2번 질문처럼 노드엔티티에 접근하려면 루트엔티티를 먼저 가져온 뒤 엔티티그래프를 통해 노드엔티티에 접근하는것이 맞는걸까요 ? 

->애그리거트의 개념적으로는 루트 엔티티를 통해서 조회하는 것이 맞지만 성능 최적화를 위해서는 직접 조회하거나 다른 방법도 함께 고려할 수 있습니다.

애그리거트를 나누는 기준은 딱 정답은 없지만 다음을 읽어보시면 도움이 되실거에요.

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

감사합니다.

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

0

77

1

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

0

109

3

MemberRepository 구현체

0

61

1

pdf 표현 질문드립니다.

0

63

1

로그가 남지 않는 문제.

0

86

1

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

0

73

2

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

0

73

2

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

0

95

2

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

0

52

1

스캔대상 질문드립니다.

0

46

1

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

0

88

1

save() vs saveAndFlush DB 통신 횟수

0

55

1

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

0

87

2

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

0

153

3

bulk insert 질문입니다.

0

182

2

교만했던 것 같아요.

0

147

1

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

0

150

2

동적 테이블에 대한 질문

0

87

1

영속성 전이와 연관관계

0

132

2

강의 10:25 질문

0

75

1

단건 update 질문

0

98

2

엔티티 와 도메인의 경계

0

129

1

UsernameOnlyDto 타입 type mismatch 오류

0

122

1

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

0

137

1