일단 기본적으로 JPQL을 코드에서 접하는 경우는 이런 경우이다.
JpaRepository에서 제공하는 기본 쿼리가 아닌 커스텀 쿼리를 만들고자 할 때, 아래와 같은 형식으로 쿼리를 넣을 수 있는데,
@Query("여기에 JPQL들어감")
List<User> getSpecialUser();
저 들어가는 query의 형태가 JPQL이다.
JPQL은 객체지향 쿼리 언어. → 테이블을 대상으로 쿼리하는게 아니라 객체를 대상으로 쿼리한다.
JPQL은 결국 SQL로 변환된다.
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);
위치 기반으로 파라미터 바인딩도 가능하다.