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

Hibernate Java Discussion :

[hibernate]requete SQL qui ne passe pas


Sujet :

Hibernate Java

  1. #1
    Membre régulier Avatar de Gromitou
    Profil pro
    Inscrit en
    Février 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2003
    Messages : 98
    Points : 81
    Points
    81
    Par défaut [hibernate]requete SQL qui ne passe pas
    bonjour a tous,

    il doit y avoir un truc que je loupe, mais là je ne comprends pas :

    - je fait une requete SQL simplissime de cette façon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listeEng = session.createQuery("SELECT truc FROM bidule").list();
    - et j'obtiens cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ...
    Caused by: net.sf.hibernate.QueryException: undefined alias: truc [SELECT truc FROM bidule]
    	at net.sf.hibernate.hql.PathExpressionParser.token(PathExpressionParser.java:103)
    	at net.sf.hibernate.hql.ParserHelper.parse(ParserHelper.java:29)
    	at net.sf.hibernate.hql.SelectParser.token(SelectParser.java:170)
    	at net.sf.hibernate.hql.ClauseParser.token(ClauseParser.java:87)
    	at net.sf.hibernate.hql.ClauseParser.end(ClauseParser.java:114)
    	at net.sf.hibernate.hql.PreprocessingParser.end(PreprocessingParser.java:143)
    	at net.sf.hibernate.hql.ParserHelper.parse(ParserHelper.java:30)
    	at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:149)
    	at net.sf.hibernate.hql.QueryTranslator.compile(QueryTranslator.java:138)
    ...
    - j'ai essayé pas mal de choses dont ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select Truc as truc from bidule;
    mais y a toujours un soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Caused by: net.sf.hibernate.QueryException: undefined alias: Truc [select Truc as truc from bidule;]
    	at net.sf.hibernate.hql.PathExpressionParser.token(PathExpressionParser.java:103)


    Et là, je tourne en rond ...

  2. #2
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    peux-t-on voir tes tables truc et bidule

    une requète HQL c'est bien par exemple

    "Select b from Bidule as b"

    bref...
    montre nous on architecture de Classe
    Juvamine

  3. #3
    Membre régulier Avatar de Gromitou
    Profil pro
    Inscrit en
    Février 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2003
    Messages : 98
    Points : 81
    Points
    81
    Par défaut
    Je ne suis pas sur de comprendre tes questions.

    Le truc, c'est que la je n'essaye même pas de faire du HQL mais du SQL tout bête (j'utilise "createQuery"), because en passant par du HQL sur les classes ca va etre compliqué.

    Et ma table est de type :
    nom de la table : bidule
    clé : biduleId
    le champ qui m'interesse : truc.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    pour faire du sql utilise plutot la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    session.createSQLQuery(String queryString)

  5. #5
    Membre régulier Avatar de Gromitou
    Profil pro
    Inscrit en
    Février 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2003
    Messages : 98
    Points : 81
    Points
    81
    Par défaut
    J'ai bien une methode "createSQLQuery" dispo mais qui prend plus de param que ça (je suis en hibernate 2). Y a pas moyen de passer une bete requete SQL par hibernate sans se compliquer la vie avec des tableaux de parametres des classes etc ?

  6. #6
    Membre confirmé Avatar de juvamine
    Profil pro
    Chef de projet MOA
    Inscrit en
    Mai 2004
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mai 2004
    Messages : 414
    Points : 502
    Points
    502
    Par défaut
    L'intéret d'utiliser Hibernate est justement de pouvoir éviter SQL et de ne travailler qu'avec ton modèle métier.
    Juvamine

  7. #7
    Invité
    Invité(e)
    Par défaut
    class Bidule{
    private String truc;

    public String getTruc(){
    return truc;
    }
    public setTruc (STring truc){
    this.truc = truc;
    }
    }

    Alors tu peux faire en HQL: "select b.truc from Bidule b"

  8. #8
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 29
    Points
    29
    Par défaut
    Bonjour,
    je te conseille de faire des alias sur tes tables sinon c le bordel en HQL.
    Ensuite il te faut te baser sur les hbm.xml pour les noms de properties.
    Si ton pb persiste envoie ton hbm et la req que tu veux faire ...

    Bon courage
    ciao

  9. #9
    Membre régulier Avatar de Gromitou
    Profil pro
    Inscrit en
    Février 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations forums :
    Inscription : Février 2003
    Messages : 98
    Points : 81
    Points
    81
    Par défaut
    Merci a tous pour vos conseils eclairés, finalement je suis passé par une requete HQL sur le code métier, c'es tplus long a mettre en place qu'une simpel requete SQL mais au final vu la galere ben, c'es tbeaucoup plus rapide et en plus c'est propre

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

Discussions similaires

  1. [MySQL] requete sql qui ne fonctionne pas
    Par Ladslman dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 16/01/2009, 14h09
  2. [Oracle] Requete sql qui ne passe pas
    Par Sh4dow49 dans le forum PHP & Base de données
    Réponses: 17
    Dernier message: 21/07/2008, 19h30
  3. [Access] requete sql qui ne fonctionne pas
    Par pobrouwers dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/03/2007, 12h33
  4. requete sql qui ne fonctionne pas
    Par pobrouwers dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 15/03/2007, 09h37
  5. [MySQL] requete sql qui ne donne pas le bon array
    Par easyjava dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/11/2006, 14h41

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