Server/Spring
[우당탕탕 개발 일지] com.querydsl.core.types.ExpressionException 에러: 기본 생성자 필요
sohyeon_v
2023. 3. 22. 12:29
반응형
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