본문 바로가기
JPA/JPQL

JPQL 다형성 쿼리

by 킹차니 2021. 7. 24.
김영한님의 인프런 강의와 PDF를 바탕으로 정리하였습니다.
https://www.inflearn.com/courses?s=%EA%B9%80%EC%98%81%ED%95%9C

 

 

 다형성 쿼리

위와 같은 경우 JPQL은 특별한 기능을 제공합니다.

Album, Movie, Book모두 Item형 타입이므로 아래와 같이 가져올 수 있습니다.

select i from Item i where type(i) IN (Book, Movie)

위와 같은 JPA쿼리를 수행하면 실제 SQL은 아래와 같이 나갑니다.

select i from i where i.DTYPE in ('Book', 'Movie')

 

 

TREAT(JPA 2.1)

자바의 타입 캐스팅과 유사
상속구조에서 부모 타입을 특정 자식 타입으로 다룰 때 사용

FROM, WHERE, SELECT(하이버네이트 지원) 사용

즉 아래와 같이 할 수 있습니다.

select i from Item i where treat(i as Book).author = 'kim'

다운캐스팅하여 select하는 모습입니다.

'JPA > JPQL' 카테고리의 다른 글

JPA - Named 쿼리  (0) 2021.07.24
JPQL -엔티티 직접사용  (0) 2021.07.24
JPQL - 패치조인의 특징과 한계  (0) 2021.07.24
JPQL - 페치 조인(fetch join)  (0) 2021.07.23
JPQL 경로 표현식  (0) 2021.07.22