selet 문에 내가 원하는 값으로 리턴하기 위해
Querydsl 에서 Projections.fileds를 사용하는데 다음과 같은 에러가 발생했었다.
@Override
public List<AnswerDTO> getMasterIdList(Long memberId) {
return jpaQueryFactory.select(
Projections.fields(AnswerDTO.class,
answer.answerId.as("answerId"),
answer.answerId.count().coalesce(0L).as("answerCount"))
)
.from(answer)
.where(answer.mberId.eq(memberId))
.fetch();
}
Projections의 경우 생성자 기반이 아닌 필드 기반으로 가져올 때 DTO의 기본 생성자가 필요하기 때문에
DTO에 @NoArgsConstructor 어노테이션을 사용해서 해결했다.
@Getter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class AnswerDTO {
private Long answerId;
private Long answerCount;
}
반응형
'공부 > Spring' 카테고리의 다른 글
[Gradle] Gradlew 빌드 시 gradle 다운로드 속도가 느릴 때 (0) | 2024.04.03 |
---|---|
[Spring] Thread Pool - pool size설정 (0) | 2024.03.26 |
[Spring] Spring 3버전에 Springdoc 라이브러리를 사용해 swagger 적용하기 (0) | 2024.01.12 |
[Spring] 멀티 모듈 사용하기 - 루트 프로젝트에 자식 의존성 추가하기 (0) | 2024.01.05 |
[Spring] jasypt 사용하기 (0) | 2023.10.05 |