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 :

convertir arraylist<object> en arraylist<resultat>


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 36
    Par défaut convertir arraylist<object> en arraylist<resultat>
    bonjour,
    dans mon code j'utilise l'instruction suivante :
    ArrayList maliste= (ArrayList) getEM().createNativeQuery(query).getResultList();
    cette instruction retourne un arraylist dont chaque element est un objet generique (java.lang.object), moi je veux le convertir en un objet Resultat spécifique, lorsque je fais le cast j'obtiens l'erreur suivante : java.lang.ClassCastException: [Ljava.lang.Object; incompatible with com.mypackage.entites.Resultat.
    donc je veux savoir comment parcourir la liste et recupérer pour chaque object les données et les injecter dans mon objet resultat.
    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 : 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
    pour que hibernante mapper les résultats de ta query native vers un objet 'Resultat', il faut que Resultat soit un objet connu de hibernante (mappé par hibernate), que tu fasse un createNativeQuery(query,Resultat.class) et que la query retourne les même colonnes que celles qui sont dans le mapping hibernate.

    Sinon, tu dois utiliser ce genre de code:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ArrayList<Resultat> result = new ArrayList<Resultat>();
     
    List<Object[]> maliste= (List<Object[]>) getEM().createNativeQuery(query).getResultList();
    for (Object[] row : maliste){
      Resultat r = new Resultat();
      // initialiser r avec les valeurs dans row
      //...
      result.add(r);
    }

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 36
    Par défaut
    Merci pour votre réponse .
    pour la première solution que vous avez proposé, mon objet résultat ne peut être mappé par hibernate car il ne correspond à aucune table dans la bdd, en fait les données de ma requête proviennent de plusieurs tables.
    en ce qui concerne la deuxième solution je sais pas comment prendre les données d'un objet generique (java.lang.object) vers mon objet resultat.
    Merci.

  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 : 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
    c'est pas object -> resultat, c'est Object[]-> résultat. Chaque Object correspondant à un colonne, le type dépendant de la colonne concernée, et donc de ta requete. Ce sont des type de base (long, float, string, etc)

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 36
    Par défaut
    merci beaucoup c résolu graçe à vous.

  6. #6
    Membre averti
    Inscrit en
    Août 2008
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 36
    Par défaut
    rebonjour,
    j'ai encore un autre probleme, pour les strings retournées par ma requêtes ils sont stockées dans le tableau object[] caractere par caractere.alors je veux savoir comment stocker tout un string dans une case du tableau
    merci

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

Discussions similaires

  1. Tri ArrayList d'object
    Par aristeas dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 21/11/2008, 17h17
  2. tri d'ArrayList d'Object[] sur un champ String
    Par igorzup dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 01/10/2008, 17h49
  3. Tri d'un arrayList d'Object[]
    Par Lex92 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 24/09/2008, 16h47
  4. Obtenir un Object[][] à partir d'une ArrayList d'object[]
    Par gufra dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 20/11/2007, 08h43
  5. [Jtable]Remplir un OBject[][] avec une ArrayList
    Par ArN0.VdB dans le forum Composants
    Réponses: 27
    Dernier message: 25/04/2007, 10h43

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