[JAVA]/JPA

JPQL - 프로젝션

팡펑퐁 2023. 5. 1. 16:14
728x90

프로젝션

  • SELECT 절에 조회할 대상을 지정하는 것
  • 프로젝션 대상으로는 엔티티, 임베디드 타입, 스칼라 타입(숫자, 문자 등 기본 데이터 타입)
SELECT m FROM Member m -- 엔티티 프로젝션
SELECT m.team FROM Member m -- 엔티티 프로젝션, Member에 연관된 Team을 가져옴
SELECT m.address FROM Member m -- 엔티티 타입 프로젝션
SELECT m.username, m.age FROM Member m -- 스칼라 타입 프로젝션
-- * DISTINCT로 중복 제거

 

여러 값 조회

SELECT m.username, m.age FROM Member m

1. Query 타입으로 조회

2. Object[] 타입으로 조회

3. new 명령어로 조회

  • 단순 값을 DTO로 바로 조회
    • SELECT new jpabook.jpql.UserDTO(m.username, m.age) FROM Member m
  • 패키지 명을 포함한 전체 클래스 명 입력
  • 순서와 타입이 일치하는 생성자 필요

 

 

 

참고

김영한 - 자바 ORM 표준 JPA 프로그래밍

728x90