>  기사  >  Java  >  Spring 데이터 JPA GROUP BY 쿼리에서 사용자 정의 개체를 반환하는 방법은 무엇입니까?

Spring 데이터 JPA GROUP BY 쿼리에서 사용자 정의 개체를 반환하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-01 14:30:02492검색

How to Return Custom Objects in Spring Data JPA GROUP BY Queries?

Spring 데이터 JPA GROUP BY 쿼리의 사용자 정의 개체 반환

Spring 데이터 JPA는 JPQL(Java Persistence)을 사용하여 데이터베이스 작업을 수행하는 편리한 방법을 제공합니다. 쿼리 언어). GROUP BY 절과 함께 사용자 정의 JPQL 쿼리를 사용할 때 내장된 SQL 결과 배열 대신 사용자 정의 개체를 반환할 수 있습니다.

JPQL 솔루션

  1. 간단한 Bean 클래스 정의:
<code class="java">public class SurveyAnswerStatistics {
    private String answer;
    private Long count;
    ... // getters and setters
}</code>
  1. 저장소 메소드에서 Bean 인스턴스 반환:
<code class="java">@Query("SELECT new com.path.to.SurveyAnswerStatistics(v.answer, COUNT(v)) FROM Survey v GROUP BY v.answer")
public List<SurveyAnswerStatistics> findSurveyCount();</code>

Native Query Solution

기본 쿼리의 경우 Bean 클래스 대신 Spring Data Projection 인터페이스가 사용됩니다.

  1. 프로젝션 인터페이스 정의:
<code class="java">public interface SurveyAnswerStatistics {
    String getAnswer();
    int getCnt();
    ... // additional getters
}</code>
  1. 쿼리에서 예상 속성 반환:
<code class="java">@Query(nativeQuery = true, value = "SELECT v.answer AS answer, COUNT(v) AS cnt FROM Survey v GROUP BY v.answer")
public List<SurveyAnswerStatistics> findSurveyCount();</code>

중요 사항

  • Bean 클래스에 대한 정규화된 경로를 사용하세요.
  • 새 키워드를 사용하여 Bean 생성자를 호출합니다.
  • Bean 생성자 매개변수와 동일한 순서로 속성을 전달합니다.
  • 쿼리가 유효한 JPA 쿼리인지 확인하세요.
  • 기본 쿼리를 사용할 때 명확한 매핑을 위해 SQL AS 키워드를 사용하세요.

위 내용은 Spring 데이터 JPA GROUP BY 쿼리에서 사용자 정의 개체를 반환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.