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 :

Problème requete SQL avec hibernate


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 19
    Points
    19
    Par défaut Problème requete SQL avec hibernate
    Bonjour je suis entrain de développer un site de vente de films en lignes.

    Sur le site, il y aura un système de compte utilisateurs. Lors de la création de compte, je voudrais vérifier si le pseudonyme du "nouvel utilisateur" n'existe pas déjà dans la base.

    J'ai donc mis en place une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    public boolean searchUserByPseudo(String pseudonyme) {
     
            session = HibernateUtil.currentSession();
            tx = session.beginTransaction();
            int results=0;
     
            String sql="Select count(*) from users where pseudo ='"+ pseudonyme +"';";
            results=( (Integer) session.createSQLQuery(sql).list().size());
            System.out.println(results);
            HibernateUtil.closeSession();
            if(results != 0)
                {
                return true;
            }
            else {
                return false;
            }
     
        }
    Qui normalement doit me retourner true, si le pseudo existe ( resultat > 0 )
    ou false si resultat = 0 ( pseudo n'existe pas dans la bdd).

    Le problème c'est que la fonction me retourne toujours 1, même si le pseudo n'existe pas. Je ne vois pas d'où viens le problème.

    Si vous pourriez m'aider, ca serait gentil. Bonne soirée et merci d'avance !

  2. #2
    Membre éprouvé
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Points : 1 177
    Points
    1 177
    Par défaut
    Au lieu de faire .list().size(), il faut plutot faire .UniqueResult()

  3. #3
    Membre confirmé

    Inscrit en
    Avril 2005
    Messages
    317
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 317
    Points : 553
    Points
    553
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String sql="Select count(*) from users where pseudo ='"+ pseudonyme +"';";
    results=( (Integer) session.createSQLQuery(sql).list().size());
    results te retournera toujours 1 car il s'agit du nombre de lignes retournées par ta requête sql et non du nb de users count(*)

    Pour avoir le nb de user il faut faire un : session.createSQLQuery(sql).list().get(0)

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Tout d'abord merci pour vos réponses, mais le problème n'est toujours pas résolu. Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    results=( (Integer) session.createSQLQuery(sql).UniqueResult());
    Netbeans me le souligne et m'indique : inconvertibles types.

    Et pour session.createSQLQuery(sql).list().get(0)

    Quand je l'ace l'appli, et que j'effectue la requete, j'obtiens cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    exception
     
    javax.servlet.ServletException: java.lang.ClassCastException: java.math.BigInteger
     
    root cause
     
    java.lang.ClassCastException: java.math.BigInteger

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    C'est bon, j'ai modifier ma requête. Pfff quel boubourse, j'aurais du y penser avant ^^

    Select pseudo au lieu de select count(*)

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

Discussions similaires

  1. Faire une requete sql avec hibernate
    Par Babas007 dans le forum Hibernate
    Réponses: 3
    Dernier message: 17/05/2011, 08h18
  2. Problème requete SQL SELECT avec access
    Par cactus666 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 12/12/2007, 12h46
  3. [SQL]Problème requete sql sous access avec vba
    Par aaliyan dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 13/04/2007, 18h53
  4. Problème de requete imbriquée avec hibernate
    Par Lolitaaa dans le forum Hibernate
    Réponses: 2
    Dernier message: 23/03/2007, 13h13
  5. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31

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