본문 바로가기
[JAVA]/JPA

JPQL - 다형성 쿼리

by 팡펑퐁 2023. 5. 13.
728x90

TYPE

  • 조회 대상을 특정 자식으로 한정할 수 있다.
-- EX) Item 중에 Book, Movie를 조회해라.

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

-- SQL
select i from i
where i.DTYPE in ('B', 'M')

 

TREAT(JPA2.1)

  • 자바의 타입 캐스팅과 유사하다.
  • 상속 구조에서 부모 타입을 특정 자식타입으로 다룰 때 사용한다.
  • FROM, WHERE, SELECT(하이버네이트 지원)에서 사용할 수 있다.
-- EX) 부모인 Item과 자식 Book이 있다.

-- JPQL
select i from Item i
where treat(i as Book).auther = 'kim'

-- SQL
select i.* from Item i
where i.DTYPE = 'B' and i.auther = 'kim'
728x90

'[JAVA] > JPA' 카테고리의 다른 글

JPQL - @NamedQuery 애너테이션  (0) 2023.05.13
JPQL - 엔티티 직접 사용  (0) 2023.05.13
JPQL - fetch join  (0) 2023.05.13
JPQL - 경로 표현식  (0) 2023.05.04
JPQL 함수  (0) 2023.05.03