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 :

Set et donnée


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut Set et donnée
    Bonjour,

    j'ai encore une question basique mais sur laquelle je bloque depuis un moment.
    je récupère les données d'un table en combinant deux autres par une relation many-to-many dans un Set.

    Ca a l'air de bien marcher mis je n'arrive pas à récupérer les données...
    Le set Pjs correspond à la table lestables_personnes contenant l'identifiant de la table et de son joueur. J'ai besoin de l'identifiant du joueur.
    J'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Iterator j=table.getPjs().iterator();
    int temp=7;
    while(j.hasNext()){
    	temp=temp+1;
    	tableauTables[i][temp]=j.next().toString();
    }
    mais ça me retourne un "truc" bizarre : persist.Personne@7bf4c3.

    Du coup je me galère depuis ce matin...

    quelqu'un sait où est le problème (je connais très peu java alors c'est pas toujours gagné)
    merci

  2. #2
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    La conversion d'un objet en String est gérée par la méthode toString(), ça je pense que tu l'a compris.

    Le problème c'est que pour l'instruction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    j.next().toString();
    C'est le toString() hérité de Object qui est utilisé, or celui-ci n'est pas très utile en tant que tel. Il renvoie simplement le nom de la classe et un gros un truc que je soupçonne être l'adresse du pointeur.

    Il te faut donc redéfinir la méthode toString() dans ton objet Personne afin d'obtenir une chaîne de caractère plus conforme à tes attente.

    Bon je connais pas ta classe Personne mais je vais essayer de te donner un exemple de redéfinission de toString :

    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 class Personne{
     
      private String nom;
     
      private String prenom;
     
      //du code
     
      public String toString(){
        StringBuffer result = new StringBuffer();
        result.append("Nom ")
                .append(nom)
                .append(" Prénom ") 
                .append(prenom);
        return result.toString();
      }
     
    }
    Voilà, le tout c'est de générer une chaîne qui va correspondre à ton besoin. Typiquement, c'est utilisé pour l'affichage du contenu d'une instance de ta classe.

    Il est conseillé de redéfinir la méthode toString() pour chaque classe créée.

    J'espère que je suis clair, n'hésite pas si tu as d'autre question.

  3. #3
    Membre Expert
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Par défaut
    Quand tu fais un j.next(), l'iterateur te renvoie l'objet suivant dans son ensemble.
    Un objet à la base du type Object

    Toi, tu veux récupérer l'identifiant, donc il y a deux facon d'y arriver

    1 - comme dis ci dessus : redéfinir la méthode toString de ton objet Personne pour qu'il renvoie l'identifiant sous forme de string
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public String toString(){
    	StringBuffer result = new StringBuffer(this.id);
    	return result.toString();
    }
    2 - récupérer ton objet et le caster dans le bon type, puis récupérer la valeur qui t'interesse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Iterator j=table.getPjs().iterator();
    int temp=7;
    while(j.hasNext()){
    	temp=temp+1;
    	Personne p = (Personne) j.next();
    	tableauTables[i][temp]=p.getId();
    }
    Les deux fonctionnent mais j'ai une large préférence pour la deuxieme

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 36
    Par défaut
    Ca marche !!!

    Merci beaucoup pour vos explications, c'est déjà plus clair.

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

Discussions similaires

  1. [Débutant] Comment construire un set de donnée?
    Par bilou_12 dans le forum C#
    Réponses: 10
    Dernier message: 15/01/2012, 16h17
  2. Set de données audio : assistance audio
    Par Ange_blond dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 18/12/2009, 12h20
  3. set et accès aux données
    Par DEVfan dans le forum SL & STL
    Réponses: 8
    Dernier message: 18/03/2008, 12h54
  4. [Tableaux] PB recuperation données type enum/set
    Par Tr@nkill dans le forum Langage
    Réponses: 2
    Dernier message: 05/04/2006, 16h49
  5. Réponses: 5
    Dernier message: 15/07/2005, 11h25

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