공부/JPA

JPA 객체지향 쿼리 언어(JPQL) - 다형성 쿼리

데부한 2022. 7. 23. 21:24
반응형

출처 : 자바 ORM 표준 JPA 프로그래밍 인프런 강의

 

JPA 게시글은 대부분 인프런의 김영한님의 강의인 '자바 ORM 표준 JPA 프로그래밍' 기반으로 내용을 정리했습니다.

 

다형성 쿼리

  • 조회 대상을 특정 자식으로 한정
    • ex) 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(하이버네이트 지원) 사용
  • ex) 부모인 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.author = 'kim'
반응형