흰 스타렉스에서 내가 내리지

JPQL 에서 new 를 이용하여 DTO 클래스로 변환하여 받기 본문

JPA

JPQL 에서 new 를 이용하여 DTO 클래스로 변환하여 받기

주씨. 2024. 4. 13. 01:15
728x90
TypedQuery<UserDTO> query = 
	em.createQuery("SELECT new com.example.test.UserDTO(m.username, m.age) 
        FROM Member m", UserDTO.class);
        
List<UserDTO> resultList = query.getResultList();

 

  • SELECT 다음에 NEW 명령어를 사용하면 반환받을 클래스를 지정할 수 있는데, 이 클래스의 생성자에 JPQL 조회 결과를 넘겨줄 수 있다.
  • NEW 명령어를 사용한 클래스로 TypedQuery 를 사용할 수 있어서 지루한 객체 변환 작업을 줄일 수 있다.
  • 단, 주의할 점이 있다.
    • 1. 패키지 명을 포함한 전체 클래스 명을 입력해야 한다.
    • 2. 순서와 타입이 일치하는 생성자가 필요하다.

'JPA' 카테고리의 다른 글

페치 조인 :: join fetch  (0) 2024.04.13
JPQL 페이징 API  (0) 2024.04.13
JPQL 파라미터 바인딩  (0) 2024.04.13
TypeQuery 와 Query  (0) 2024.04.13
고아 객체  (0) 2024.04.10