JPA 내의 JPQL 쿼리 사양은 사용자 정의 개체 반환에 대한 기본 지원을 제공합니다.
원하는 출력 구조:
<code class="java">public class SurveyAnswerStatistics { private String answer; private Long cnt; // Constructor }</code>
사용자 정의 Bean의 인스턴스를 반환하도록 저장소 메서드를 업데이트합니다. :
<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(); }</code>
네이티브 쿼리는 새 키워드에 대한 직접적인 지원이 부족하지만 Spring Data Projection 인터페이스는 대안을 제공합니다. 해결 방법:
원하는 출력에 해당하는 속성을 사용하여 프로젝션 인터페이스를 만듭니다. p>
<code class="java">public interface SurveyAnswerStatistics { String getAnswer(); int getCnt(); }</code>
저장소 메서드를 업데이트하여 투영된 속성을 반환합니다:
<code class="java">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>
SQL AS 키워드를 사용하여 결과 필드를 투영 속성에 원활하게 매핑합니다.
위 내용은 Spring 데이터 JPA GROUP BY 쿼리에서 사용자 정의 개체를 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!