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 :

Erreur requête HQL


Sujet :

Hibernate Java

  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 32
    Par défaut Erreur requête HQL
    Coucou encore moi :s

    pouvez vous me dire ce qui cloche avec cette requête HQL ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    quete = session.createQuery("select C.nomClient from Client as C  join Reservation as R where C.numClient = R.numClient  " );
    	 System.out.println(requete.list().size());// On vérifie bien que ca a marché
    	 List resultat = requete.list();  //je récupère un tableau de 2 colonnes
    l'erreur est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Exception in thread "main" net.sf.hibernate.QueryException: outer or full join must be followed by path expression [select C.nomClient from mpkg.classe.Client as C  join Reservation as R where C.numClient = R.numClient  ]
    	at net.sf.hibernate.hql.FromParser.token(FromParser.java:166)
    je galère avec les jointures


    MErci

  2. #2
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    S'il n'y a pas de jointure naturelle pour hibernate, c'est à dire si tu n'as pas de relation entre les objets, il va te falloir passer par la notation de jointure cartésienne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select C.nomClient from Client as C, Reservation as R where C.numClient = R.numClient
    Si par contre il y avait une relation entre tes deux objets, ce qui semblerait plutôt naturel, comme par exemple un attribut client dans la classe Reservation, tu pourrais faire ça dans l'autre sens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select C.nomClient from Reservation as R join R.client as C

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Regarde le chapitre de la documentation sur les jointures, car tu t'y prends mal.
    Si ta classe Client possède une collection de réservations, nommée par exemple "reservations", ça devrait donner quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select C.nomClient from Client as C  join C.reservations

    EDIT: pas assez rapide. je laisse la réponse au cas où.

Discussions similaires

  1. Requête HQL : erreur de syntaxe
    Par raf64flo dans le forum Hibernate
    Réponses: 0
    Dernier message: 26/04/2010, 18h47
  2. Erreur dans une requête HQL
    Par Philcmoi dans le forum Hibernate
    Réponses: 5
    Dernier message: 05/09/2008, 22h24
  3. Erreur d'éxécution de requête HQL
    Par Invité dans le forum Hibernate
    Réponses: 2
    Dernier message: 27/03/2008, 10h51
  4. [HQL] erreur requête delete
    Par PamelaGeek dans le forum Hibernate
    Réponses: 4
    Dernier message: 17/02/2006, 13h27
  5. [erreur requête]
    Par viny dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 16/09/2005, 13h55

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