(JPA) JPQL의 기초

1. JPQL이란?

  • JPQL은 JPA(Java Persistence API)의 쿼리 언어 중 하나이며 데이터베이스의 객체 지향 조작을 위한 언어입니다.
  • JPQL은 엔티티 객체에 대한 쿼리를 작성하고 SQL과 유사한 구문을 사용합니다. 그러나 JPQL은 객체 지향 개념을 기반으로 하기 때문에 테이블 및 열 이름 대신 엔터티 클래스 및 필드 이름을 사용하며 SQL에서와 같이 JOIN 조건을 지정할 필요가 없습니다.
  • JPQL을 사용하면 객체 지향 개념으로 데이터를 처리할 수 있으며 JPA의 다양한 기능을 활용할 수 있습니다. 예를 들어 상속 관계가 있는 엔터티를 찾는 경우 상속 관계에 대한 JPQL 지원 기능을 사용할 수 있습니다.
  • JPQL은 EntityManager 인터페이스를 통해 실행할 수 있습니다. JPA에서 EntityManager는 엔터티를 관리하는 데 사용되며 EntityManager는 JPQL 쿼리를 실행하는 데에도 사용됩니다. JPQL을 사용하여 엔터티를 쿼리하면 JPA는 데이터베이스에서 데이터를 검색하여 엔터티 개체로 변환하고 반환합니다.

2. JPQL 실습

1) JPQL로 전체 회원 검색



2) JPQL을 통해

  • JPA를 사용할 때 엔터티-오브젝트 중심 개발의 문제점은 검색 쿼리에 있는데, 검색에서도 모든 DB 데이터가 오브젝트로 변환되기 때문에 테이블이 아닌 엔터티-오브젝트에 대한 검색이 불가능하다. 검색 조건이 포함된 SQL이 필요합니다. JPA는 SQL을 추상화하는 JPQL이라는 객체 지향 쿼리 언어를 제공하며 SQL과 유사한 구문으로 SELECT, FROM, WHERE, GROUP BY, HAVING 및 JOIN을 지원합니다.

  • 엔터티 개체에 대한 PQL 쿼리
  • 데이터베이스 테이블에 대한 SQL 쿼리

  • JPQL은 SQL을 추상화하여 특정 데이터베이스 SQL에 종속되지 않고 테이블이 아닌 객체를 검색하는 객체 지향 쿼리입니다. JPQL의 한 단어 정의는 개체 지향 SQL이며 나중에 자세히 설명합니다.