[스프링] JPA 프로젝션
본 포스트에서는 JPA(Java Persistence API)에서 프로젝션에 대해 알아보겠습니다.
목차
- JPA의 프로젝션이란?
- 프로젝션 종류
- JPA 프로젝션 사용 예제
- 결론
1. JPA의 프로젝션이란?
JPA에서 프로젝션은 데이터베이스로부터 필요한 컬럼만 조회하는 기능을 말합니다. 보통 엔티티의 일부 필드만 조회하거나, 여러 엔티티의 필드들을 함께 조회하는 상황에서 프로젝션을 사용합니다.
2. 프로젝션 종류
JPA의 프로젝션에는 다음과 같이 두 가지 종류가 있습니다.
- 엔티티 프로젝션: 엔티티의 전체 필드를 조회하는 방식
- DTO 프로젝션: 일부 필드 또는 다수의 엔티티 필드를 DTO(데이터 전송 객체)에 매핑하여 조회하는 방식
3. JPA 프로젝션 사용 예제
다음은 JPA 프로젝션을 사용한 예제 코드입니다.
// DTO 프로젝션 예제
@Query("SELECT new com.example.dto.EmployeeDTO(e.name, e.salary) FROM Employee e")
List<EmployeeDTO> findEmployeeDTO();
// 엔티티 프로젝션 예제
@Query("SELECT e FROM Employee e")
List<Employee> findEmployee();
4. 결론
본 포스트에서는 JPA의 프로젝션에 대해 간략하게 알아보았습니다. 프로젝션을 활용하여 불필요한 데이터의 조회를 피하고, 원하는 필드만을 효과적으로 조회할 수 있습니다.