프로젝션
• SELECT 절에 조회할 대상을 지정하는 것
• 프로젝션 대상: 엔티티, 임베디드 타입, 스칼라 타입(숫자, 문자등 기본 데이터 타 입)
• SELECT m FROM Member m -> 엔티티 프로젝션
• SELECT m.team FROM Member m -> 엔티티 프로젝션
• 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 타입으로 조회
Query query = em.CreateQuery("SELECT m.userName, m.age from Member m")
2. Object[] 타입으로 조회
List resultList = em.CreateQuery("SELECT m.userName, m.age from Member m")
Object o = resultList.get(0);
Object[] result = (Object[]) o;
3. new 명령어로 조회
List <Objectp[]> resultList = em.CreateQuery(
"SELECT new jpql.MemberDTO(m.username, m.age) FROM Member m"
).getReusltList();
• 패키지 명을 포함한 전체 클래스 명 입력
• 순서와 타입이 일치하는 생성자 필요
'JAVA > JPA' 카테고리의 다른 글
(JPA) 조인 (0) | 2021.07.09 |
---|---|
(JPA) 페이징 (0) | 2021.07.09 |
(JPA) JPQL (0) | 2021.07.08 |
(JPA) 값 타입 컬렉션 (0) | 2021.07.06 |
(JPA) 값 타입의 비교 (0) | 2021.07.06 |