JPA(Java Persistence API)를 사용하여 서비스를 구현하다 보면 JPA의 Query Methods만으로는 조회가 불가능한 경우가 발생 N+1문제 중요!!

JPQL은 SQL을 추상화 하여 사용하기 때문에 JPQL문은 데이터 베이스가 변경 되어도 애플리케이션에 영향을 받지 않는다.

DB테이블이 아닌 entity를 대상으로 쿼리를 작성한다

(자동생성 - Query Method, JPA Criteria, Querydsl)

수동 생성: 엔티티 매니저 em.createQuery(), @Query

@Query는 SpringData에서 제공.

Untitled

사용 방법

  1. EntityManager의 createQuery()로 작성
  2. @Query로 작성 - 메서드 이름은 쿼리와 상관없음.

주로 2번 사용함.