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 :

JPQL / HQL : petit probleme de requete


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 572
    Points : 631
    Points
    631
    Par défaut JPQL / HQL : petit probleme de requete
    Bonjour,

    J'utilise jpa implémenté par hibernate, et j'ai fait la requete suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    q = em.createQuery("Select p From Port p" +
    		" Where Exists" +
    		" (Select b from Bateau b" +
    		" Where b.getPort().getId() = p.getId()" +
    		" And b.isPP() = true" +
    		" And b.getBeginDate() <= '" + date + "'" +
    		" And b.getEndDate() >= '" + date + "'" +
    		" And b.getStatus() = '" + status + "')");
    Et ça saute avec un "unexpected AST node: ( ... " donc je suppose que le probleme vient de la parenthese ouvrante avant le 2eme select, mais je ne vois pas pourquoi.

    Quelqu'un a une idée ?

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    On ne passe pas par les getter dans la requête, juste la propriété.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    q = em.createQuery("select p from Port p" +
        " where exists" +
        " (select b from Bateau b" +
        " where b.port.id = p.id" +
        " and b.pp = true" +
        " and b.beginDate <= '" + date + "'" +
        " and b.endDate >= '" + date + "'" +
        " and b.status = '" + status + "')");
    Mais je ferais plutôt ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    q = em.createQuery("select p from Port p" +
        " where exists" +
        " (select b from Bateau b" +
        " where b.port.id = p.id" +
        " and b.pp = true" +
        " and b.beginDate <= :dateDebut" +
        " and b.endDate >= :dateFin" +
        " and b.status = :status)");
    q.setParameter("dateDebut", valeur1);
    q.setParameter("dateFin", valeur2);
    q.setParameter("status", valeur3);
    A+

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/04/2009, 13h26
  2. petit probleme de requete SQL dans formulaire
    Par kumo dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/06/2007, 15h37
  3. [DEBUTANT] petit probleme de requete sql
    Par eclipse012 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/12/2006, 15h10
  4. petit probleme de requete
    Par micco dans le forum Access
    Réponses: 2
    Dernier message: 19/04/2006, 11h11
  5. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 11h36

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