메모장
QueryDSL 에서 DTO데이터만 뽑아오기
키스샷1104
2023. 11. 23. 04:51
@Test//셋터
public void findDtoBySetter() {
List<MemberDto> result = queryFactory
.select(Projections.bean(MemberDto.class,
member.username,
member.age
))
.from(member)
.fetch();
}
@Test//필드에 그대로 주입(이것도 기본 생성자가 projected가 아니며 안됨)
public void findDtoByFields() {
List<MemberDto> result = queryFactory
.select(Projections.fields(MemberDto.class,
member.username,
member.age
))
.from(member)
.fetch();
for (MemberDto memberDto : result) {
System.out.println("memberDto = " + memberDto);
}
}
@Test//생성자 projected면 안됨
public void findDtoByContructor() {
List<MemberDto> result = queryFactory
.select(Projections.constructor(MemberDto.class,
member.username,
member.age
))
.from(member)
.fetch();
}