[Error] com.querydsl.core.types.ExpressionException: No constructor found for class 에러
❗ 문제발생
- 사이드 프로젝트 진행중 JPA에서 Projection.constructor을 사용할 때해당 에러가 발생했다. 해당 원인을 찾아보니 Dto.class에서 정의하는 필드와 Repository에서 select로 표현하고자하는 필드가 완전히 일치하지 않아서 발생하는 문제라고 한다!
💡 해결방안
- 모든 필드의 타입이 일치해야 한다.
- 모든 필드의 순서가 일치해야 한다.
- Repository와 DTO의 필드명이 다르다면 .as("별칭") 메서드를 사용해서 Dto 쪽에서의 필드명과 같도록 별칭을 지정해주도록 한다.