Spring Data JPA를 사용하여 복잡한 쿼리를 수행할 때 GROUP BY 쿼리를 반환하는 방법이 아닌 사용자 정의 개체를 반환해야 합니다. 기본 엔터티. 그러한 시나리오 중 하나는 특정 필드별로 결과를 그룹화하고 각 그룹의 개수를 검색하는 것입니다. 이 기사에서는 이를 달성하기 위한 두 가지 방법, 즉 JPQL 쿼리용과 기본 쿼리용 방법을 살펴보겠습니다.
JPQL은 new 키워드를 사용하여 사용자 정의 개체를 반환하기 위한 기본 지원을 제공합니다. 수행 방법은 다음과 같습니다.
<code class="java">public interface SurveyRepository extends CrudRepository<Survey, Long> { @Query("SELECT new com.path.to.SurveyAnswerStatistics(v.answer, COUNT(v)) FROM Survey v GROUP BY v.answer") List<SurveyAnswerStatistics> findSurveyCount(); } public class SurveyAnswerStatistics { private String answer; private Long cnt; // getters and setters here }</code>
네이티브 쿼리는 new 키워드를 지원하지 않습니다. 대신 Spring Data 프로젝션 인터페이스를 사용하세요.
<code class="java">public interface SurveyAnswerStatistics { String getAnswer(); int getCnt(); } public interface SurveyRepository extends CrudRepository<Survey, Long> { @Query(nativeQuery = true, value = "SELECT v.answer AS answer, COUNT(v) AS cnt FROM Survey v GROUP BY v.answer") List<SurveyAnswerStatistics> findSurveyCount(); }</code>
중요 사항:
위 내용은 Spring 데이터 JPA GROUP BY 쿼리에서 사용자 정의 개체를 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!