Dto의 생성자에 @QueryProjection을 추가
~/MemberDto
@Data
public class MemberDto {
private String username;
private int age;
//기본 생성자
public MemberDto() {
}
@QueryProjection
public MemberDto(String username, int age) {
this.username = username;
this.age = age;
}
}
@QueryProjection 활용
List<MemberDto> result = queryFactory
.select(new QMemberDto(member.username, member.age))
.from(member)
.fetch();
위 방식을 이용하면
컴파일러로 타입을 체크할 수 있어서 가장 안전하다는 장점이 있다.
하지만 DTO가 Querydsl에 의존하는 점(Querydsl 어노테이션을 dto에서 유지하는 점)과 DTO까지 Q 파일을 생성해야하는 단점이 있다
'QueryDSL' 카테고리의 다른 글
[Querydsl] 사용자 정의 리포지토리 (0) | 2022.03.25 |
---|---|
[Querydsl] 동적쿼리 처리하는 방법(BooleanBuilder, Where 다중 파라미터 사용) (0) | 2022.03.25 |
[Querydsl] 프로젝션(Projection) (0) | 2022.03.25 |
[Querydsl] 서브쿼리 (from절 서브쿼리 한계) (0) | 2022.03.23 |
[Querydsl] 조인(기본 조인, 세타 조인, on절(leftJoin,필터링), 페치조인) (0) | 2022.03.22 |