- 데이터베이스에서 프로젝션(projection)은 쿼리 결과에서 필요한 열(컬럼)만 선택하여 반환하는 과정입니다.
- 이는 불필요한 데이터를 제외하고, 필요한 데이터만 효율적으로 조회할 수 있게 해줍니다.
- SQL 쿼리뿐만 아니라 JPA와 같은 ORM 프레임워크에서도 사용됩니다.
- 프로젝션은 성능 최적화와 데이터 전송량을 줄이는 데 중요한 역할을 합니다.
SQL에서의 프로젝션
- SQL 쿼리에서 프로젝션은
SELECT
문을 사용하여 특정 열만 선택하는 것입니다.
예시
SELECT name, age FROM Users;
- 위 쿼리는
Users
테이블에서name
과age
열만 선택하여 반환합니다. 이를 통해 전체 행(row)이 아닌 필요한 열만 조회하게 됩니다.
JPQL에서의 프로젝션
- JPQL에서는 필요한 엔티티의 특정 필드만 선택하여 프로젝션을 수행할 수 있습니다.
java
@PersistenceContext
private EntityManager entityManager;
public List<Object[]> getUserNamesAndAges() {
String jpql = "SELECT u.name, u.age FROM User u";
return entityManager.createQuery(jpql).getResultList();
}
- 위 코드에서는
User
엔티티에서name
과age
필드만 선택하여 결과를 반환합니다.
- 반환된 결과는
Object[]
배열 형태입니다.
Share article