일단 기본적으로 JPQL을 코드에서 접하는 경우는 이런 경우이다.

JpaRepository에서 제공하는 기본 쿼리가 아닌 커스텀 쿼리를 만들고자 할 때, 아래와 같은 형식으로 쿼리를 넣을 수 있는데,

@Query("여기에 JPQL들어감")
List<User> getSpecialUser();

저 들어가는 query의 형태가 JPQL이다.

JPQL이란?

JPQL은 객체지향 쿼리 언어. → 테이블을 대상으로 쿼리하는게 아니라 객체를 대상으로 쿼리한다.

JPQL은 결국 SQL로 변환된다.

JPQL 문법 알아보기

기본적인 사용

SELECT m FROM Member AS m WHERE m.username="minzoovv"

파라미터 바인딩

쿼리를 할 때 인자를 설정하는데, 들어가는 인자는 다음과 같이 :인자명 형태로 매핑해준다.

@Query("select u from User as u where u.name= :name")
List<User> getSpecialUser(@Params String name);

위치 기반으로 파라미터 바인딩도 가능하다.