Maison > Java > javaDidacticiel > le corps du texte

Comment renvoyer des objets personnalisés dans les requêtes Spring Data JPA GROUP BY ?

Mary-Kate Olsen
Libérer: 2024-11-01 14:30:02
original
491 Les gens l'ont consulté

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

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

  1. Définir une classe de bean simple :
<code class="java">public class SurveyAnswerStatistics {
    private String answer;
    private Long count;
    ... // getters and setters
}</code>
Copier après la connexion
  1. Renvoyer les instances de bean à partir de la méthode du référentiel :
<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>
Copier après la connexion

Solution de requête native

Pour les requêtes natives, les interfaces Spring Data Projection sont utilisées à la place des classes de bean :

  1. Définir une interface de projection :
<code class="java">public interface SurveyAnswerStatistics {
    String getAnswer();
    int getCnt();
    ... // additional getters
}</code>
Copier après la connexion
  1. Renvoie les propriétés projetées à partir de la requête :
<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>
Copier après la connexion

Remarques importantes

  • Utilisez un chemin d'accès complet vers la classe du bean.
  • Appelez le constructeur du bean à l'aide du nouveau mot-clé.
  • Transmettez les attributs dans le même ordre que les paramètres du constructeur du bean.
  • Assurez-vous que la requête est une requête JPA valide.
  • Utilisez le mot-clé SQL AS pour un mappage sans ambiguïté lors de l'utilisation de requêtes natives.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal