
프로젝션 대상이 하나면 타입을 명확하게 지정할 수 있음
com.querydsl.core.Tuple

MEmberDto


- 순수 JPA에서 DTO를 조회할 때는 new 명령어를 사용해야함
- DTO의 package이름을 다 적어줘야해서 지저분함
- 생성자 방식만 지원함
결과를 DTO 반환할 때 다음 3가지 방법 지원
1. 프로퍼티 접근
2. 필드 직접 접근
3. 생성자 사용





프로퍼티나, 필드 접근 생성 방식에서 이름이 다를 때 해결 방안
ExpressionUtils.as(source,alias) : 필드나, 서브 쿼리에 별칭 적용
username.as("name") : 필드에 별칭 적용

./gradlew compileQuerydsl
QMemberDto 생성 확인

방법은 컴파일러로 타입을 체크할 수 있으므로 가장 안전한 방법이다. 다만 DTO에 QueryDSL 어노테이션을 유지해야 하는 점과 DTO까지 Q 파일을 생성해야 하는 단점이 있다.