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

Développement Web en Java Discussion :

[QuerySyntaxException] Code SQL erroné


Sujet :

Développement Web en Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Par défaut [QuerySyntaxException] Code SQL erroné
    Bonsoir tout le monde,

    J'ai un petit souci! Je veux récupérer la dérinère ligne ajouté dans ma base avec ce code ci dessus:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    List c = (List) (session.createQuery("select * from Client where id=(select max(id) from Client)").uniqueResult());
    Mais ça me sort cette éxception:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select * from ma.hibernate.Client where id=(select max(id) from Client)]
    	org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:31)
    	org.hibernate.hql.ast.QuerySyntaxException.convert(QuerySyntaxException.java:24)
    	org.hibernate.hql.ast.ErrorCounter.throwQueryException(ErrorCounter.java:59)
    ...
    Je ne comprends pas pourquoi!! Est ce que quelqu'un pourrait m'aider

    Merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    en hql, on fait des query objet, donc on ne fait pas un select * on fait un select sur l'objet, chose que l'on peux d'ailleur omettre.

    Ceci devrais faire l'affaire:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select c from Client c where c.id=(select max(c2.id) from Client c2)

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2012
    Messages : 82
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    en hql, on fait des query objet, donc on ne fait pas un select * on fait un select sur l'objet, chose que l'on peux d'ailleur omettre.

    Ceci devrais faire l'affaire:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select c from Client c where c.id=(select max(c2.id) from Client c2)
    Merci beaucoup
    Le problème est résolu

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    a noter, si je ne me trompe pas, que ceci doit être plus performant puisqu'il évite au sgbd de charger toutes les row mais de se contenter de son index.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Query q = session.createQuery("select c from Client c order by c.id desc")
    q.setMaxResults(1);
    return (Client)q.list().get(0);

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

Discussions similaires

  1. [Mon premier code SQL] Multiples INNER JOIN's
    Par Paulinho dans le forum Langage SQL
    Réponses: 1
    Dernier message: 14/11/2005, 09h04
  2. Création BD Access Code SQL pour relation 1-1 ?
    Par colorid dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 26/10/2005, 16h42
  3. Réponses: 7
    Dernier message: 12/09/2005, 11h05
  4. [IB6] Code SQL.
    Par qi130 dans le forum SQL
    Réponses: 1
    Dernier message: 21/02/2005, 12h21
  5. Récupérer le code SQL à partir d'une requête
    Par Edith_T dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 23/11/2004, 14h10

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