DTO QueryProjection

2023. 4. 2. 22:06·JPA 게시판/JPA
반응형

DTO의 생성자에 붙이는 어노테이션

@QueryProjection 을 사용하면, DTO의 QType을 만들 수 있고, 그걸 사용해서 쿼리문을 생성할 수 있다.

UserDTO

@Data
@NoArgsConstructor
@Builder
public class UserDTO {
    private String name;
    private int age;

    @QueryProjection
    public UserDTO(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

이후, complieQuerydsl을 하면, DTO의 Q타입이 생성된다.

@Test
    public void findDtoByQueryProjection() throws Exception{
        //given
        List<UserDTO> fetch = queryFactory.select(new QUserDTO(member.username, 
																															 member.age))
                                          .from(member)
                                          .fetch();
        for (UserDTO userDTO : fetch) {
            System.out.println("userDTO = " + userDTO);
        }
        //when

        //then
    }

장점은 생성자를 이용하기 때문에, 만약 다른 타입이 들어가거나, 다른 인자가 더 들어가면, 컴파일 시점에서 IDE에서 에러가 뜨기때문에 좀 더 안전하게 쿼리문을 작성할 수 있다. (내가 원하는 결과를 만들 수 있다.)


Uploaded by N2T

반응형

'JPA 게시판 > JPA' 카테고리의 다른 글

QueryDsl의 설정방법— 스프링 부트 2.7버전 이전 버전기준  (1) 2023.04.02
QueryDsl DTO로 조회하는방법  (0) 2023.04.02
QueryDsl에서 동적쿼리를 해결하는법  (1) 2023.04.02
BaseEntity의 작성  (1) 2023.04.02
@ManyToOne의 설정방법  (0) 2023.04.02
'JPA 게시판/JPA' 카테고리의 다른 글
  • QueryDsl의 설정방법— 스프링 부트 2.7버전 이전 버전기준
  • QueryDsl DTO로 조회하는방법
  • QueryDsl에서 동적쿼리를 해결하는법
  • BaseEntity의 작성
cvcvcx9
cvcvcx9
프로그래머
  • cvcvcx9
    참치와 연어가 좋아
    cvcvcx9
  • 전체
    오늘
    어제
    • 전체보기 (92)
      • JAVA (22)
        • 웹 프로그래밍 딥하게 파보기 (7)
        • String (2)
        • 자바의 다양한 객체 (3)
        • 클래스와 인터페이스, 추상클래스 (2)
        • 컬렉션과 자료구조 (6)
        • 제네릭 (0)
      • SPRING (5)
      • JPA 게시판 (19)
        • JPA게시판 만들기 (7)
        • JPA (10)
        • Spring Security (2)
        • 오류정리 (0)
      • 코딩테스트 준비 (4)
        • 자료구조 (3)
      • Python (21)
        • Django (21)
      • 컴퓨터 기초 (8)
        • 컴퓨팅사고 (7)
      • Web (7)
        • 유용한 설정 (6)
        • Git 관련 (1)
      • 데이터베이스 (1)
        • 친절한 SQL튜닝 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 인기 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.3
cvcvcx9
DTO QueryProjection
상단으로

티스토리툴바