[WEB]Back-end/JPA
JPQL이 뭐야? 어떻게 사용해?
ABAP,ODATA,BTP
2022. 1. 21. 17:30
반응형
# 인프런 김영한의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 개인적으로 정리한 글입니다.
정리
Q. JPQL이 뭐야?
JPA를 활용하여 엔티티 객체를 중심으로 개발이 가능하게 하는 쿼리언어이다.
Q. JPQL의 특징은 뭐야?
엔티티 객체를 중심으로 개발이 가능해.
하지만 검색 쿼리 작성, 동적 쿼리 작성시에는 문제가 발생한다.
Q. 왜 검색 쿼리 작성시에 문제가 발생해?
테이블이 아닌 객체를 대상으로 검색을 하기 때문이야.
왜 객체를 대상으로 검색을 하는 것이 문제가 될까?
=> 모든 DB를 객체로 변환해서 검색하는 것은 불가하고, 필요한 데이터만 DB에서 불러오려면
검색 조건이 포함된 SQL문이 사용되야하기 때문이다!.
Q. JPQL 어떻게 사용해?
<뼈대>
Select 필드 From 테이블 Where 조건
Member |
id(pk) |
username |
address |
Select m From Member m
SQL식 해석 : Member 테이블에서 member 관련 내용을 다 가져와라
JPQL식 해석 : Member 엔티티에서 member와 관련된 내용들 다 가져와
Select m.username From Member m
SQL식 해석 : Member table에서 member의 username 필드를 가져와
JPQL식 해석 : Member 엔티티에서 member의 username변수를 가져와
Select m.username From Team t join t.members m
SQL식 해석 : Team 테이블과 Team테이블의 맴버 컬랙션을 조인한 것을 m으로 설정할께. m에서 username 내용을 가져와
JPQL식 해석 :Team 엔티티와 Team엔티티 내의 맴버 컬랙션을 조인한 것을 m으로 설정할께. m에서 username 변수를 가져와
이때 별칭 m 과 t !!!
별칭은 필수로 쿼리 안에 써야한다.
별칭 = SQL문의 as 와 같음
<예시>
JPQL : Member m
SQL : Member as m
로 사용한다.
반응형