JPQL(Java™ Persistence Query Language)은 지속적 엔티티를 저장하는 데 사용되는 메커니즘과 독립적으로 지속적 엔티티에서 검색을 정의하는 데 사용됩니다.
따라서 JPQL은 이식 가능하며 특정 데이터 스토어에 제한되지 않습니다.
JPQL은 Enterprise JavaBeans 조회 언어인 EJB QL의 확장이며, SQL의 구문 및 단순 조회 시맨틱을 객체 지향 표현식 언어의 표현과 결합하도록 디자인되었습니다.
조회 인스턴스가 EntityManager 인터페이스에서 공개한 메소드를 사용하여 작성됩니다.
JPQL은 작업 중에 작성된 동적 조회 및 이름 지정된 조회와 같은 두 가지 유형의 조회를 정의합니다.
이름 지정된 조회는 동일한 조회를 여러 번 시작하는 컨텍스트에서 사용하도록 의도되었습니다. 이러한 조회는 한 번 평가되었기 때문에 향상된 코드 재사용 가능성, 수월한 유지보수, 잠재적으로 향상된 성능과 같은 주요 이점을 가지고 있습니다.
이름 지정된 조회는 @NamedQuery 어노테이션을 사용하여 정의됩니다. 이름 속성이 이름 지정된 조회를 고유하게 식별하는 데 사용되는 반면, 조회 속성은 조회를 정의합니다.