인프런 커뮤니티 질문&답변

shovel님의 프로필 이미지

작성한 질문수

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

주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화

Spring Boot 3.X distinct 관련

23.03.08 03:31 작성

·

1.6K

2

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

[질문 내용]

주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화

Spring Boot 3.2버전에서 실습 중에, distinct 옵션을 사용하지 않고도 distinct 옵션을 넣은 것처럼 Row가 2줄 출력됩니다. 이것저것 코드를 확인하다가 Spring Boot를 2.x 버전으로 내린 후에 다시 확인해보았는데, 그제서야 강의에 나오는 것처럼 중복 데이터 4개가 나옵니다. 혹시 이것 관련해서 jpa에서 업데이트가 된 것인지요..? 검색 능력이랑 문서 능력 찾아보는 능력이 딸려, 한참 찾아보다 여기에 질문합니다 ㅜㅜ 실례가 안된다면 이러한 내용을 어떻게 찾는지도 알게 될 수 있다면 좋을거 같습니다!

답변 1

10

y2gcoder님의 프로필 이미지

2023. 03. 10. 09:20

안녕하세요, shovel 님. 공식 서포터즈 y2gcoder 입니다.

JPA 구현체로 Hibernate를 사용하는데, 스프링 부트 3버전 부터는 Hibernate 6 버전을 사용하고 있습니다 :)

Hibernate 6버전은 페치 조인 사용 시 자동으로 중복 제거를 하도록 변경되었다고 합니다.

https://docs.jboss.org/hibernate/orm/current/userguide/html_single/Hibernate_User_Guide.html#hql-distinct

감사합니다.

shovel님의 프로필 이미지
shovel
질문자

2023. 03. 13. 23:07

감사합니다! 많은 도움이 되었습니다!

y2gcoder님의 프로필 이미지

2023. 03. 14. 08:47

파이팅입니다!

낙낙님의 프로필 이미지

2024. 10. 04. 12:45

스크린샷 2024-10-04 오후 12.44.20.png

스프링 부트 3.3.2 버전 사용중입니다.
이렇게 hibernate5로 명시되어있는데 hibernate6을 사용한다는건 어디에서 알 수 있나요?

y2gcoder님의 프로필 이미지

2024. 10. 04. 12:59

말씀해주신 라이브러리는

jackson 데이터 처리와 hibernate(jpa 구현체) 간의 매핑에 관련된 라이브러리 입니다.

이는 저희가 추가해준 것으로 실제 hibernate 5를 사용중인 것이 아닙니다.

사용하는 hibernate 버전을 확인하시고 싶으시다면

찍어주신 캡처를 기준으로 gradle > compileClasspath > org.springframework.boot:spring-boot-starter-data-jpa:3.3.2 > 하위를 확인해보시면 좋을 것 같습니다~

image.png

낙낙님이 사용하고 계시는 스프링 부트 3.3.2 버전의 하위버전인 3.2.3 버전에서도 hibernate 6버전을 사용하고 있는 모습을 보실 수 있습니다.

 

 

낙낙님의 프로필 이미지

2024. 10. 04. 13:07

빠른 답변 너무너무 감사합니다~!

shovel님의 프로필 이미지

작성한 질문수

질문하기