반응형
SMALL
@Data
@AllArgsConstructor
public class MemberDto {
private String username;
private int age;
}
MemberDto를 만들어주고,
@Test
public void findDtoBySetter() {
List<MemberDto> result = queryFactory
.select(Projections.bean(MemberDto.class,
member.username,
member.age))
.from(member)
.fetch();
for (MemberDto memberDto : result) {
System.out.println("DTO: " + memberDto);
}
}
다음과 같이 Projections.bean을 이용하여 DTO 조회를 했는데,
에러 발생 🥺
무엇이 문제인가,, 찾아보니 Projections.bean은 기본 생성자를 기반으로 동작한다더랬다.
기본 생성자가 없어서 위의 예외가 발생한 것이다.
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MemberDto {
private String username;
private int age;
}
그럼 DTO에 기본생성자를 의미하는 @NoArgsConstructor 어노테이션을 달아준다면?
테스트가 성공했다. 희희
Projections.bean을 쓰려면 해당 DTO에 기본생성자를 꼭 달아주자!!
References
반응형
LIST
'Server > Spring' 카테고리의 다른 글
[우당탕탕 개발 일지] Spring Security 트러블 슈팅: AntPathRequestMatcher (1) | 2023.10.23 |
---|---|
[우당탕탕 개발일지] Spring Boot와 AWS S3을 이용하여 파일 업로드하기 (0) | 2023.08.08 |
[우당탕탕 개발일지] Querydsl 초기 세팅: 버전 5 기준 (0) | 2023.03.19 |
[우당탕탕 개발 일지] @Builder의 잘못된 사용 예시, List 필드가 있으면 Builder를 신중하게 사용하자! (0) | 2023.02.20 |
[우당탕탕 개발 일지] JUnit5로 예외 테스트 (1) | 2023.02.19 |