본문 바로가기
Spring/Spring boot

[SpringBoot] 스프링부트 JPQL(Java Persistence Query Language)

by s_hoonee 2023. 6. 17.
반응형

 JPQL(Java Persistence Query Language)에 대해 알아보자!

JPQL(Java Persistence Query Language)은 자바 기반의 ORM(Object-Relational Mapping) 기술인 JPA(Java Persistence API)에서 사용되는 쿼리 언어입니다. JPQL을 통해 객체 지향적인 방식으로 데이터베이스와 상호작용할 수 있습니다. 이번 글에서는 JPQL에 대해 자세히 알아보고, 주요 기능과 사용법에 대해 살펴보겠습니다.

 

JPQL이란?

JPQL 엔티티 객체를 대상으로 하는 객체 지향 쿼리 언어입니다.
데이터베이스 테이블이 아닌 엔티티 클래스와 필드를 기반으로 쿼리를 작성할  있습니다.
JPQL
 JPA 일부로 제공되며, ORM 사용하는 애플리케이션에서 데이터베이스와 상호작용하는  사용됩니다.


JPQL
 주요 기능

객체 지향적인 쿼리: JPQL SQL 달리 엔티티와 필드를 기반으로 쿼리를 작성합니다이를 통해 객체 그래프를 탐색하고 조인 등의 다양한 기능을 활용할  있습니다.
엔티티 조작: JPQL 사용하여 엔티티의 생성수정삭제 등의 조작을 수행할  있습니다.
결과 반환: JPQL 쿼리 결과를 엔티티 객체 또는 DTO(Data Transfer Object) 반환할  있습니다.
집계 함수와 그룹화: JPQL COUNT, SUM, AVG 같은 집계 함수를 지원하며, GROUP BY 절을 사용하여 그룹화된 결과를 조회할  있습니다.


JPQL 
사용법

JPQL 애플리케이션의 엔티티 클래스와 필드를 기반으로 쿼리를 작성합니다.
@NamedQuery 
어노테이션을 사용하여 엔티티 클래스 내에 JPQL 쿼리를 정의할  있습니다.
EntityManager
 통해 JPQL 쿼리를 실행하고 결과를 받아올  있습니다.
JPQL 
쿼리는 SELECT, UPDATE, DELETE  다양한 유형의 쿼리를 작성할  있습니다.


주의사항

JPQL 객체 그래프를 탐색하는 것이 SQL 비해 복잡할  있습니다쿼리의 성능을 최적화하려면 적절한 인덱스를 사용하고 조인을 최소화해야 합니다.
JPQL
 대소문자를 구분합니다엔티티 클래스와 필드의 이름을 정확하게 작성해야 합니다.
JPQL
 정적 쿼리이므로 실행 시점에 쿼리가 변경되지 않습니다동적인 쿼리를 작성해야 하는 경우 Criteria API Querydsl 고려해야 합니다.


마무리

JPQL JPA 핵심 기능  하나로객체 지향적인 방식으로 데이터베이스와 상호작용할  있는 쿼리 언어입니다JPQL 사용하면 엔티티와 필드를 기반으로 쿼리를 작성하여 유연하고 편리하게 데이터를 조회하고 조작할  있습니다.