Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 도커
- grafana
- 부트캠프
- 에프랩
- 로드밸런서
- github
- F-Lab
- EC2
- 알고리즘
- AWS
- 트러블슈팅
- 후기
- 플러터
- redis
- 레디스
- Flutter
- error
- java
- 자바백엔드
- backend
- 코딩테스트
- 백엔드
- MySQL
- Spring
- 멘토링
- FLAB
- nGrinder
- 데이터구조
- 자바
- 성능테스트
Archives
- Today
- Total
민스씨의 일취일장
TIssue | Spring Data JPA | 실전! 스프링 데이터 JPA | Class Projection 안되는 이슈 본문
Programming Language & Framework/JAVA & Spring
TIssue | Spring Data JPA | 실전! 스프링 데이터 JPA | Class Projection 안되는 이슈
읻민스 2024. 12. 5. 18:33반응형
Spring Data JPA의 클래스 프로젝션 적용 중 오류가 발생하는 이슈에 대한 내용이다.
상황
인프런 <실전! 스프링 데이터 JPA - 김영한> 강의의 '섹션 8 - Projections' 실숩 중 class projection(클래스 프로젝션)이 적용되지 않는 이슈가 발생했다. 클래스를 작성후 Repository에 메서드를 등록하기만 하면, 실행 중 에러가 발생했다.
작성했던 코드
작성했던 코드는 아래와 같다.
public class UsernameOnlyDto {
private final String username;
public UsernameOnlyDto(String username){
this.username = username;
}
public String getUsername(){
return username;
}
}
발생 오류 모습
문제지점 파악의 어려움
원인 파악이 어려웠던 점은, 에러의 모습이 Database가 연결되지 않았을 때와 비슷한 형식이였기 때문에 원인이 클래스에 있을 것이라고 생각지 못했다.
해결책
일단 해결책을 먼저 살펴 보려고 한다. 클래스를 아래와 같이 수정했더니 정상 작동했다.
public record UsernameOnlyDto(String username){}
코드를 이렇게 수정한 이유는 공식문서에 이와 같이 작성하라고 명시돼 있기 때문이다.
원인
정확한 원인을 파악하기 위해서 역 추적을 해봤지만, 정확한 원인은 찾지 못했다.
record
record 형식은 자동으로 getter, toString(), equals(), hashCode() 메서드를 생성해준다.
getter, toString(), equals(), hashcode()
그럼 해당 메서드들을 작성하지 않아서 문제가 발생한 것인가? 그렇지 않았다. 해당 메서드들을 작성해 테스트 해봐도 똑같은 오류가 발생했다.
Spring Boot 3
그럼 스프링 부트3에서는 class projection을 위해 record 형식의 dto만을 사용해야 하는가? 그것도 아니라고 한다.
결론
정확한 원인은 찾지 못했다. 혹시 댓글로 원인을 아는 분은 알려주시면 정말 감사하겠습니다.🙇🏻♂️
728x90
반응형
'Programming Language & Framework > JAVA & Spring' 카테고리의 다른 글
TIssue | JPA | 스프링 부트와 JPA 활용 2 - 김영한 | Fetch Join에 distinct 적용 안해도 중복 제거되는 상황 (0) | 2024.11.28 |
---|---|
Thymeleaf | 재실행 없이 변경사항 반영되도록 하는 방법 (0) | 2024.11.19 |
YdMinS | 스프링 IoC와 DI에 대해서 (0) | 2024.07.10 |
IntelliJ | Java 프로젝트 생성 후 테스트 코드까지 작성해보기 (0) | 2024.05.01 |
TIssue | Postman에서 요청을 보냈는데 Controller에 도달을 안하는 이슈 (0) | 2024.03.04 |