inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

주문 조회 V6: JPA에서 DTO로 직접 조회, 플랫 데이터 최적화

gropingBy 에 관하여입니다.

500

임도현

작성한 질문수 22

5

     Set<Map.Entry<OrderQueryDto, List<OrderItemQueryDto>>> entries = flats.stream()
                .collect(groupingBy(o ->  new OrderQueryDto(o.getOrderId(), o.getName(),
                                o.getOrderDate(), o.getOrderStatus(), o.getAddress()),
                        mapping(o -> new OrderItemQueryDto(o.getOrderId(),
                                o.getItemName(), o.getOrderPrice(), o.getCount()), toList())))
                .entrySet();

여기서 OrderQueryDto 와 Map 의 키(groupingby 의 classifier)가  되는 것 같은데 아무리 구글링해봐도 객체인경우에는  @EqualsAndHashCode를 통해 여러 필드중 특정 필드를 지정해줘야한다? 이런말을 못 찾겠습니다...

질문도 좀 이상한것 같은데 제가 궁금한것은 어떤 키워드나 사이트를 참조해서 공부해야하는지 입니다...

찾아본 예시들도 다 그냥 일반적인 경우라
어떻게 equalshashcode를 알려줘야하는지  원천? 을 알고싶습니다.

spring-boot spring java JPA

답변 2

1

임도현

늦은시간 감사합니다! Map 이 키가 같은지 비교할때 hash(key)를 비교하는데 

@EqualsAndHashCode of("orderid") 를 해주면 orderid로만 equals 함수와 hash함수를 오버라이딩 해줘서

mapping이 루프를 돌때 key가 같은것으로 인식하여서 orderItems가 처음처럼 따로 안생기고 같이 묶인다고 이해하면 맞나요?

0

김영한

네 맞습니다^^

1

김영한

안녕하세요. 도현님

다음 블로그에서 2.3. 복잡한 맵 키 유형으로 그룹화 부분을 보시면 도움이 되실거에요.

https://recordsoflife.tistory.com/55

또는 여기도요. https://gem1n1.tistory.com/159

감사합니다.

강의 관련 외 질문입니다.

0

62

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

0

84

1

BeanCreationException

0

86

3

Update 후 UpdateMemberResponse 매핑할 때

0

46

1

트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?

0

96

2

페이징 + 검색조건 관련해서 질문드립니다.

0

70

1

Query Dsl Q파일 질문입니다.

0

81

1

루트 쿼리라는것은

0

58

1

메서드를 분리하는 기준

0

61

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

108

3

연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략

0

83

2

fetch join과 영속화와 OSIV의 관계

0

83

2

Distinct 사용 전 결과에 대한 의문

0

112

2

레포지토리 계층에서의 트랜잭션에 대한 의문

0

55

1

영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.

0

77

2

dto 필드 속 엔티티 여부

0

58

1

뷰템플릿 사용 시

0

76

2

Result 클래스 관련 질문

0

56

1

@PostConstruct 프록시 관련 질문드립니다

0

85

1

DTO 대신 Form 사용은 안되나요?

0

133

1

OSIV ON 상태일 때

0

94

1

fetch join VS fetch join 페이징 궁금증

0

178

2

양방향 연관관계 알아보는 법?

0

102

1

16강 17강 간단 정리 이게 맞을까요 ?

0

161

2