김영한님의 인프런 강의와 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 |