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 :

select max(ID) en hibernate


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 43
    Points
    43
    Par défaut select max(ID) en hibernate
    Bonjour je voudrais faire une fonction qui me retourne le max des ID dans ma base mysql g essayé ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public int getMaxID(){
            int leID;
            Session session3 = HibernateUtil.getSessionFactory().getCurrentSession();
            session3.beginTransaction();
            FormAjoutDoc U = (FormAjoutDoc)session3.createQuery("select max(ID) from FormAjoutDoc as p ").uniqueResult();
            System.out.println(U.getID());
            leID = U.getID();
            session3.getTransaction().commit();
            //return result;
            return leID;
        }

    mais ca retourne des erreurs du genre :
    Hibernate: select max(formajoutd0_.ID) as col_0_0_ from document formajoutd0_
    Exception in thread "main" java.lang.ClassCastException: java.lang.Integer
    at Dao.DocumentsManager.getMaxID(DocumentsManager.java:70)
    at Dao.DocumentsManager.main(DocumentsManager.java:26)

    je croyais que c'était simple mais!!
    est ce que quelqu'un peut m'aider sur ce pt?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Points : 191
    Points
    191
    Par défaut
    Dans ta requête, tu sélectionnes un id mais tu cast vers un FormAjoutDoc .
    Je pense que c'est ça ton problème.

  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 43
    Points
    43
    Par défaut
    justement le :

    session3.createQuery("select max(ID) from FormAjoutDoc as p ").uniqueResult()

    retourne un Object donc je dois mettre le resultat dans un objet donc comment dois-je caster le resultat pour obtenir le ID qui est un int?

  4. #4
    Membre éprouvé Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Points : 1 050
    Points
    1 050
    Par défaut
    certes il renvoie un objet mais comme l'indique ton erreur, c'est un Integer...
    Nous les geeks, c'est pas qu'on a une case en moins, c'est juste qu'on compte à partir de zéro.
    Plus les choses changent, plus elles restent les mêmes

  5. #5
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    cast le en Integer ou Long et ca va marcher

  6. #6
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    73
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 73
    Points : 43
    Points
    43
    Par défaut
    en int ca n'a pas marché mais ca a marché en Object
    merci

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

Discussions similaires

  1. [EJB3][HIBERNATE] Probleme avec select max
    Par kristof_machin dans le forum Hibernate
    Réponses: 2
    Dernier message: 26/04/2006, 13h05
  2. [SQL] requete select max
    Par kabikou dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 19/10/2005, 16h18
  3. Aide pour un SELECT MAX(...)
    Par Gladiator dans le forum Langage SQL
    Réponses: 7
    Dernier message: 24/06/2005, 16h48
  4. Incrémenter champ : insert into . select max(.) + 1 from .
    Par ludo.guy dans le forum Langage SQL
    Réponses: 10
    Dernier message: 25/11/2004, 14h39
  5. Problème select MAX(annee) dans une requête
    Par grisounette dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 28/10/2004, 17h36

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