Renvoi d'objet personnalisé dans les requêtes Spring Data JPA GROUP BY
Spring Data JPA offre un moyen pratique d'effectuer des opérations de base de données à l'aide de JPQL (Java Persistence Langage de requête). Lorsque vous utilisez une requête JPQL personnalisée avec une clause GROUP BY, vous souhaiterez peut-être renvoyer des objets personnalisés au lieu des tableaux de résultats SQL intégrés.
Solution JPQL
<code class="java">public class SurveyAnswerStatistics { private String answer; private Long count; ... // getters and setters }</code>
<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>
Solution de requête native
Pour les requêtes natives, les interfaces Spring Data Projection sont utilisées à la place des classes de bean :
<code class="java">public interface SurveyAnswerStatistics { String getAnswer(); int getCnt(); ... // additional getters }</code>
<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>
Remarques importantes
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!