개요

@QueryProjection

@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 활용

@Test
void findDtoByQueryProjection() {
    //given

    //when
    List<MemberDto> result = jpaQueryFactory
            .select(new QMemberDto(member.userName, member.age))
            .from(member)
            .fetch();

    //then
    for (MemberDto memberDto : result) {
        System.out.println("memberDto = " + memberDto);
    }
}