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 :

Exception très étrange lors de l'appel de list.get()


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Par défaut Exception très étrange lors de l'appel de list.get()
    Bonjour à tous,

    Aujourd’hui j'ai un problème vraiment très bizarre..

    Voici le code :

    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
    public HashMap<String, String> getDivisionGroupeHM() {
            HashMap<String, String> hm = new HashMap<String, String>();
            try {
                Query query = em.createNativeQuery("SELECT long_name, name FROM Groupe_ews");
                List<Object[]> list = query.getResultList();
                for (int i = 0; i<list.size(); i++) {
                    Object[] tmp = list.get(i);   //  <--- ICI : EXCEPTION : java.util.Vector cannot be cast to [Ljava.lang.Object;
                    hm.put(tmp[0].toString(), tmp[1].toString());
                }
            }
            catch (Exception e) {
                log.fatal("Erreur: ", e);
                return null;
            }
            return hm;
        }
    L'exception est donc java.util.Vector cannot be cast to [Ljava.lang.Object; ALORS QUE la méthode list.get(i) renvoi un tableau d'objet (d'après la javadoc)..
    Bien-sur si j'essaye de remplacer "Object[] tmp = list.get(i);" PAR "Vector[] tmp = list.get(i);" NetBeans me dis fuck get(i) retourne un Object pas un Vecteur..
    ==> FOUTAGE DE GUEULE INTEGRAL ! mdr

    Si quelqu'un a déjà fais face à ce problème, ou aurait une idée, je serait preneur !!

    Ps : Meme probleme, meme exception si le for est defini comme ca :
    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
    public HashMap<String, String> getDivisionGroupeHM() {
            HashMap<String, String> hm = new HashMap<String, String>();
            try {
                Query query = em.createNativeQuery("SELECT long_name, name FROM Groupe_ews");
                List<Object[]> list = query.getResultList();
                for (Object[] resultElement : list) {
                    hm.put((String)resultElement[0], (String)resultElement[1]);
                }
            }
            catch (Exception e) {
                log.fatal("Erreur: ", e);
                return null;
            }
            return hm;
        }
    Update : Enocre mieux ! :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Vector[] tmp = (Vector[]) list.get(i);
    => Exception : java.util.Vector cannot be cast to [Ljava.util.Vector;
    Un vector peut pas etre casté en vector.. Pas mal pas mal..

    Merci d'avance pour votre aide.

    Cordialement,

  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 : 46
    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
    Citation Envoyé par Sennad Voir le message
    L'exception est donc java.util.Vector cannot be cast to [Ljava.lang.Object; ALORS QUE la méthode list.get(i) renvoi un tableau d'objet (d'après la javadoc)..
    Effectivement c'est curieux, la native query, d'après la javadoc, est censée retourner une List<Object[]> pas une List<Vector>. Quelle implémentation de jpa utilise tu? Peut être que la javadoc est erronée :/
    Citation Envoyé par Sennad Voir le message
    Bien-sur si j'essaye de remplacer "Object[] tmp = list.get(i);" PAR "Vector[] tmp = list.get(i);" NetBeans me dis fuck get(i) retourne un Object pas un Vecteur..
    Là, par contre, ce code n'a aucun sens. L'exécution t'as dit "dans la liste, c'est des vecteurs, pas des tableaux, et du coup tu mixe tout ça en disant "ben on va prendre un tableau de vecteurs et caster comme un bourrin". Aucune chance de marcher et même netbeans s'en rends compte à la compilation :/


    Le code correct, a priori, si tu recois bien une liste de vecteur (la flemme d'aller sortir la doc détaillée de JPA sur les nativequery, je te fais confiance):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                List<Vector<Object>> list = query.getResultList();
                for (Vector<Object> tmp : list) {
                    hm.put(tmp.get(0).toString(), tmp.get(10).toString());
                }
    Citation Envoyé par Sennad Voir le message
    ==> FOUTAGE DE GUEULE INTEGRAL ! mdr
    no comment.

  3. #3
    Membre très actif Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Par défaut
    Salut tchize,

    Une fois de plus, merci pour ta réponse !

    Ton bout de code marche parfaitement, et j'ai la rage ! Lol
    Je comprend tout a fais le raisonnement, j'ai pas pensé à essayer, mais j'ai essayer dans tout les sens, même des trucs improbable pour essayer d'analyser les erreurs pour comprendre bien ce qu'il attendait, mais bon maintenant c'est clair
    Merci beaucoup une fois de plus,

    Bonne journée !!



    A bientôt

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

Discussions similaires

  1. Probleme très étrange mais pourtant si simple ! (Alias)
    Par Artanis dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/05/2005, 19h56
  2. Flash lors de l'appel d'un état Crystal report 7
    Par IADJOFOGUE dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 12/05/2005, 11h10
  3. Problème très étrange...
    Par TitiFr dans le forum Requêtes
    Réponses: 4
    Dernier message: 31/03/2005, 21h37
  4. [VB.NET] Problème étrange lors de la création de BDD
    Par Playmo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 28/03/2005, 22h25
  5. Erreur lors de l'appel d'un page ASP
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 27/08/2004, 15h17

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