본문 바로가기
Spring/JPA/Hibernate

JPQL - 다형성 쿼리

by 개복이 2021. 5. 28.

 

 

 

 

 

 

 

 

 

TYPE

  • 조회 대상을 특정 자식으로 한정
  • 예) Item중에 Book, Movie를 조회해라
  • [JPQL]
    select i from Item i 
    where type(i) IN (Book, Movie)
  • [SQL]
    select i from i 
    where i.DTYPE IN ('B', 'M')

 

TREAT(JPA 2.1)

  • 자바의 타입 캐스팅과 유사
  • 상속 구조에서 부모 타입을 특정 자식 타입으로 다룰 때 사용
  • FROM, WHERE, SELECT(하이버네이트 지원) 사용
  • 예) 부모인 Item과 자식 Book이 있다.
  • [JPQL]
    select i from Item i
    where treat(i as Book).author = 'kim'
  • [SQL]
    select i.* from Item i 
    where i.DTYPE = 'B' and i.auther = 'kim'

 

 

 

Reference

  • 자바 ORM 표준 JPA 프로그래밍

'Spring > JPA/Hibernate' 카테고리의 다른 글

JPQL - Named 쿼리  (0) 2021.05.30
JPQL - 엔티티 직접 사용  (0) 2021.05.29
JPQL 패치 조인2 - 한계  (0) 2021.05.27
JPQL 패치 조인1 - 기본  (0) 2021.05.26
JPQL 경로 표현식  (0) 2021.05.25

댓글