logo

JPA GroupBy 처리

language-logoJava

• Java Stream을 활용하여 DB의 데이터를 조회하고 DTO로 변환하는 방법은 어플리케이션 단에서 구현된 내용을 쉽게 수정하거나 파악할 수 있지만, 데이터가 많아질 경우 성능이 느려지고 메모리 사용이 많아질 수 있다.
• JPA의 JPQL과 Projection을 이용하면 DTO에 Query 결과값을 바로 담을 수 있어, 데이터가 많아져도 성능이 느려지지 않고 메모리 사용도 효율적이다.
• 'Query'에 대한 타입 안정성과 안정성을 확인할 수 있지만, 'Projection'을 사용할 때는 생성자를 쿼리 내에서 호출해야 하는 단점이 있다. 또한, 'Native Query'를 사용하면 데이터베이스에서 쿼리를 빠르게 검증할 수 있지만, 반환된 'Interface'를 별도의 DTO로 변환해야 할 필요성이 있다.
• 'QueryDSL'을 사용한 'Group By' 쿼리는 'JPAQuery'를 직접 활용해야 한다. 이를 위해 'JPAQueryFactory'를 사용하여 쿼리를 생성하고, 'Projections.bean'을 사용하여 결과를 DTO로 변환한다.

thumbnail
북마크
공유하기
신고하기
4분 분량
조회수 131
profile-image엄행어사
일 년 전
Copyright © 2025. Codenary All Rights Reserved.