[TIL/JPA] 기본개념 : 다형성 쿼리

2024. 9. 15. 19:27·TIL/JPA
728x90
반응형

 

위와 같이 설계가 되어있다고 가정을 하고 다형성 쿼리에 대해서 설명을 하겠다.

 

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

TREAT는 자바의 타입 캐스팅과 유사하다.

상속 구조에서 부모 타입을 특정 자식을 타입으로 다룰 때 사용한다.

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

 

예를 들어서 부모인 Item과 자식 Book이 있다.

JPQL로 아래와 같이 작성을 하면

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

 

SQL문의 결과는 아래와 같이 나온다.

select i.* from Item i
where i.DTYPE = 'B' and i.author = 'park'

 

auther은 Book에만 있는 필드이며, 위와 같이 작성을 하면 다운 캐스팅을 할 수 있는 것이다.

728x90
반응형

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

[TIL/JPA] 기본개념 : Named 쿼리  (0) 2024.09.17
[TIL/JPA] 기본개념 : JPQL에서 엔티티 직접 사용하기  (0) 2024.09.17
[TIL/JPA] 기본개념 : 페치 조인(fetch join)  (0) 2024.09.11
[TIL/JPA] 기본개념 : 경로 표현식  (0) 2024.09.10
[TIL/JPA] 기본개념 : JPQL(Java Persistence Query Language)  (0) 2024.09.09
'TIL/JPA' 카테고리의 다른 글
  • [TIL/JPA] 기본개념 : Named 쿼리
  • [TIL/JPA] 기본개념 : JPQL에서 엔티티 직접 사용하기
  • [TIL/JPA] 기본개념 : 페치 조인(fetch join)
  • [TIL/JPA] 기본개념 : 경로 표현식
야리니
야리니
오늘보다 내일 더 성장하는 개발자가 되기 위한 야리니 블로그입니다 :)
    반응형
    250x250
  • 야리니
    야리니의 step by step
    야리니
  • 링크

    • GitHub
    • Linkedin
  • 전체
    오늘
    어제
    • 분류 전체보기 (477)
      • TIL (379)
        • Java (97)
        • Kotlin (28)
        • JPA (16)
        • Spring (37)
        • Oracle (22)
        • JDBC (7)
        • Web(HTML, CSS, JS, jQuery) (90)
        • View Template (31)
        • AWS (7)
        • HTTP (7)
        • CS (5)
        • Linux, Unix (2)
        • Python (20)
      • Trouble Shooting(Error) (37)
      • Algorithm (15)
      • Git,GitHub (8)
      • Diary (23)
      • 독서 (9)
      • Etc (6)
        • Mac (1)
        • 학원준비과정 (2)
  • 블로그 메뉴

    • 방명록
    • 태그
  • 공지사항

    • 안녕하세요 :)
  • 인기 글

  • 태그

    java기초
    oracle
    HTML
    쌍용교육센터
    국비지원학원
    코틀린
    java
    백엔드 개발자
    Kotlin
    CSS
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
야리니
[TIL/JPA] 기본개념 : 다형성 쿼리
상단으로

티스토리툴바