IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JPA Java Discussion :

RequeteJPA non objet


Sujet :

JPA Java

  1. #1
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 111
    Par défaut RequeteJPA non objet
    Bonjour,

    Dans le cadre d'un projet Spring boot avec une base MySql, je souhaite faire une requête pour créer des statistiques, donc je ne récupère pas d'objet métier.

    Ma requête s'exécute, mais les résultats du count qui compte le nombre d'item et le sum qui additionne leur prix est incohérent.

    Je les récupère en string pour les charger dans un DTO et je fais un parse int et parse double



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Dans mon repository
     
    @Query("""
        		select c.name as categoryId, 
        		count(p) as numberOfUnits,
        		 sum(it.unitCost) as totalAmount  
        		from OrderLine ol join ol.order,
        		OrderLine join ol.item it,
        		Product p join p.category c,  
    Item join it.product
    group by c.id    		  
        		""") 
      List<String[]>getSalesForCategory();
    Est-ce que je peux mapper directement les résultats vers mon DTO ?
    List<SalesDTO>getSalesForCcategory();
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  2. #2
    Membre très actif

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 483
    Billets dans le blog
    5
    Par défaut
    C'est à ne pas faire, c'est même de l'anti-hibernate.

    Néanmoins,
    devrait mieux marcher que:

  3. #3
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 111
    Par défaut
    Bah non ce n'est pas anti-hibernate.

    Je veux récupérer des valeurs sur mes @entity Order, OrderLine, Category...pour faire des statistiques de ventes par catégories.
    Comme je ne stocks pas les statistiques je ne peux pas les récupérer, en tant qu'objet.
    c'est pour ça que je fait des count et sum et un group by par catégorie.
    Après je vais les rediriger vers un DTO SaleDTO.

    Je peux aussi récupérer tous mes Order et les traiter avec un Stream, mais je pensais plus logiques de faire ça comme en SQL

    Je pensais demander à Hibernate de Mapper vers mon SalesStaDTO, mais je ne suis pas certains de la syntaxe, il faut faire des alias sur la colonne avec le nom du champs de l'objets correspondant.

    select c.name as {SalesState.libelle]}, count(ol.id) as {Salesstat.id}, sum(pcost) as {SalesStats.tottal}
    from ...

    Mais je ne suis pas certaine de la syntaxe alors je voulais passer par des String
    A gauche l'opération SQL et dans l'alias la classe et la propriété
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

  4. #4
    Membre chevronné
    Homme Profil pro
    Ingénieur en génie logiciel
    Inscrit en
    Juin 2012
    Messages
    942
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur en génie logiciel
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2012
    Messages : 942
    Par défaut
    pour les mapping dto regarde: les projection dto

    rien ne d'empêcher de faire une requête native aussi, jpa n'est pas toujours la solution la plus adapté

  5. #5
    Membre éprouvé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2013
    Messages
    1 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 111
    Par défaut
    Citation Envoyé par marc.collin Voir le message
    pour les mapping dto regarde: les projection dto

    rien ne d'empêcher de faire une requête native aussi, jpa n'est pas toujours la solution la plus adapté
    Merci, j'ai plus de résultats avec "projection dto".

    Je cherchais avec "mappage requête vers dto"
    Consultez mes articles sur l'accessibilité numérique :

    Comment rendre son application SWING accessible aux non voyants
    Créer des applications web accessibles à tous

    YES WE CAN BLANCHE !!!

    Rappelez-vous que Google est le plus grand aveugle d'Internet...
    Plus c'est accessible pour nous, plus c'est accessible pour lui,
    et meilleur sera votre score de référencement !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser des fonctions non objets avec Zend
    Par jux dans le forum Zend Framework
    Réponses: 6
    Dernier message: 08/02/2009, 11h58
  2. [UML] utilisation langage non objet
    Par untipy dans le forum UML
    Réponses: 5
    Dernier message: 10/08/2007, 16h30
  3. Réponses: 8
    Dernier message: 22/05/2006, 09h25
  4. Conception non-objet
    Par Thierry Chappuis dans le forum Merise
    Réponses: 9
    Dernier message: 23/01/2006, 20h13
  5. "Mixer" objet et non-objet ?
    Par zapho dans le forum UML
    Réponses: 5
    Dernier message: 19/03/2004, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo