NellKiM 2025. 2. 3. 10:45

JPQL (Java Persistence Query Language)**는 **JPA (Java Persistence API)에서 사용되는 쿼리 언어 객체 지향 프로그래밍 환경에서 데이터베이스에 접근하기 위해 사용되며, SQL과 유사하지만 엔티티(Entity)와 필드를 대상으로 쿼리를 작성하는 것이 특징

JPQL 특징

  • 객체 중심 쿼리 언어: JPQL은 SQL처럼 테이블과 컬럼을 대상으로 하지 않고 엔티티와 필드를 대상으로 쿼리
  • 데이터베이스 독립적: 특정 DBMS에 종속되지 않음
  • 표준 JPA 쿼리 방식: JPA가 지원하는 모든 데이터베이스에서 사용 가능

JPQL 예제

기본 JPQL

java
복사편집
// 모든 고객 정보 조회 String jpql = "SELECT c FROM CustomerEntity c"; TypedQuery<CustomerEntity> query = entityManager.createQuery(jpql, CustomerEntity.class); List<CustomerEntity> customers = query.getResultList();

위 쿼리에서:

  • CustomerEntity는 JPA 엔티티 클래스
  • c는 엔티티의 별칭(alias)
  • SELECT c는 CustomerEntity 객체를 가져옴

조건절 추가

java
복사편집
String jpql = "SELECT c FROM CustomerEntity c WHERE c.name = :name"; TypedQuery<CustomerEntity> query = entityManager.createQuery(jpql, CustomerEntity.class); query.setParameter("name", "Alice"); CustomerEntity customer = query.getSingleResult();

JPQL과 SQL 비교

특징JPQLSQL

대상 엔티티 테이블
필드 참조 엔티티 필드 컬럼 이름
표준화 JPA 표준 DB 종속적
사용 목적 객체 데이터 관리 DB 데이터 관리

JPQL 장점

  1. 데이터베이스 독립성: 데이터베이스 변경에 영향을 덜 받음
  2. 객체 지향 쿼리: 엔티티 객체를 기반으로 쿼리 작성
  3. 코드 가독성: 엔티티 기반으로 이해하기 쉬운 쿼리 작성

정리

JPQL은 JPA의 핵심 기능 중 하나로, 객체 지향 프로그래밍과 관계형 데이터베이스 사이의 간극을 줄여줍니다. SQL과 비슷한 구문을 사용하면서도 객체를 직접 다룰 수 있다는 점에서 효율적입니다. JPA 기반 프로젝트에서는 필수적으로 알아야 하는 기술입니다.