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 :

[EJBQL] Renommer un count


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Par défaut
    Bonjour a tous,

    dans mon projet j'utilise les ejbs et ejbql.

    J'ai une requête ejbql où je fais un count. J'ai besoin de renommer ce count mais je suis bloqué :

    Ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT m, count(c.id) 
    FROM Messages m, 
    Conflicts c LEFT OUTER JOIN c.messageId msg 
    GROUP BY m.parentId, m
    Le problème est que lorsque je rajoute "as myCount" après le count je récupere l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Exception [TOPLINK-8024] (Oracle TopLink Essentials - 2.1 (Build b60e-fcs (12/23/2008))): oracle.toplink.essentials.exceptions.EJBQLException
    Exception Description: Syntax error parsing the query [Messages.findAllDiscussions2: SELECT m, count(c.id) as abuses FROM Messages m, Conflicts c LEFT OUTER JOIN c.messageId msg GROUP BY m.parentId, m], line 1, column 23: syntax error at [as].
    Internal Exception: line 1:23: expecting "from", found 'as'
    Autrement dit, je voudrais faire simplement faire correspondre mon count(c.id) à un attribut de ma classe Messages.

    Existe-t-il une solution ?

    Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Essaie d'éviter de mettre le as, je crois qu'en EJBQL t'es pas obligé.
    Sinon es tu obligé de mettre un alias? tu peux recuperer simplement une collection d'Objects, et dans ta boucle, connaissant les vrais types tu castes,non?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Par défaut
    Je me réexplique :

    En clair j'ai mon objet Messages avec ses attributs qui correspondent chacun à une colonne de ma table Messages.

    Maintenant, j'ai rajouté un attribut à Messages, nommé "abuses", de type int dans lequel j'aimerai stocker un count.

    J'ai essayé pas mal de choses mais je n'y arrive pas. Le problème étant que ma colonne est nommé "count(c.id)".

    Comment puis-je récupérer une simple liste d'Object ? A ce moment là, comment se passe le cast ?

    Merci beaucoup pour ta réponse !

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Fais moi voir la boucle dans laquelle tu recuperes et traites le resultat de ta requete, et je t'aiderai à caster.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Avril 2008
    Messages : 58
    Par défaut
    Il n'y a pas de boucle, c'est un EntityManager qui récupère le résultat de ma NamedQuery.

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Oui je connais le principe de soumission de la requête, mais comment la récupères tu de ton em? tu fais bien un select. je veux le bout de code qui devait traiter le résultat de ce select, la question n'est pourtant pas compliquée.
    Je partirai de là pour t'effectuer le cast qu'il faut, c vraiment pas compliqué du tout tu verras.

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/07/2011, 14h03
  2. [] [Réseau] Renommer des fichiers dans un site FTP
    Par JerBi dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 22/08/2003, 01h35
  3. Multiple Count
    Par Antichoc dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2003, 12h19
  4. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 10h41
  5. Renommer un repertoire
    Par Sitas dans le forum Langage
    Réponses: 5
    Dernier message: 14/08/2002, 12h56

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