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 :

Probleme class java.lang.ClassCastException avec deux tables


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Points : 43
    Points
    43
    Par défaut Probleme class java.lang.ClassCastException avec deux tables
    Salut,
    je veux lister les informations de mes equipes et de mes joueurs et ceci j'utilise hql mais j'ai un probléme de cast exception
    le voila mon 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    public static ArrayList listeEquipe() {
        ArrayList listeEquipe=new ArrayList();
          try {
    		Session s = SessionManager.currentSession();
    	    String requete="FROM Equipe e,Joueur j  ";
    	    
    		List list = s.find(requete);
    		
    		Iterator it=list.iterator();
    		String libelle=null;
    		String nom=null;
    		
    		while (it.hasNext()) {
    			
    		Equipe equipe =  (Equipe) it.next();
    		Joueur joueur=(Joueur)it.next();
    		EquipeVue EquipeVue = Recup.recupEquipe(equipe);
    		JoueurVue JoueurVue = Recup.recupJoueur(joueur);
    		listeEquipe.add(equipe);
    		listeEquipe.add(joueur);
    			}
    		s.flush();
    		//s.close();
    	} catch (HibernateException e){
    		e.printStackTrace();
    	}finally {
    		try {
    			SessionManager.closeSession();
    		}
    		catch (HibernateException e){
    			e.printStackTrace();
    		}
    	   } 	
    	return listeEquipe;
    }
    l'erreur que j'ai c'est celle des deux lignes colorié en rouge c'est un probléme de cast .Si vous avez la solution n'hesiter pa a me l'expliquer svp je n'arrive plus a avancer
    Bonne journée

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Points : 4 314
    Points
    4 314
    Par défaut
    Telle qu'elle est écrite, ta requête va te donner l'ensemble des couples (Equipe, Joueur) possibles à partir du contenu de ta base. Es-tu sûr que c'est ce que tu veux?

    Ensuite, le résultat est un ensemble de couples. Donc, un "it.next()" te renvoie à chaque fois un couple (Equipe, Joueur). Evidemment, tu ne peux pas caster ce couple ni en Joueur, ni en Equipe avant d'en avoir extrait chacun des éléments.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Points : 43
    Points
    43
    Par défaut
    oui je sais le résultat ne me dérange pas car c'est dans la liste que je vais faire des conditions puique quand je fais cette requette:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    From Equipe e,Joueur j where j.idEquipe=e.id
    elle me donne une erreur le idEquipe n'existe pas dans le model
    alors j'ai choisi cette solution faire sortir touts les couples et aprés faire des conditions
    Alors comment je vais caster merci bcp de m'aider

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Points : 43
    Points
    43
    Par défaut
    si ta une autre idée elle serait la bienvenue

    " le idEquipe n'existe pas dans le model joueur"

  5. #5
    Membre expérimenté Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Points : 1 639
    Points
    1 639
    Par défaut
    tu peux utiliser instanceof pour savoir de quelle classe il s'agit.

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 60
    Points : 43
    Points
    43
    Par défaut
    bon j'ai trouvé quelques astuces ca donne le résultat que je veux mais je pense que question programmation c pas super super mais au moins pour avoir une petite idée
    Voila 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    public static ArrayList listeEquipe() {
        ArrayList listeEquipe=new ArrayList();
           	
          	Session session = null;
    		try{
    		    // This step will read hibernate.cfg.xml and prepare hibernate for use
    		    SessionFactory sessionFactory = new Configuration().configure()
    		.buildSessionFactory();
    		    session =sessionFactory.openSession();
    		    Session s = SessionManager.currentSession();
    		    //Create Select Clause HQL
    		     String SQL_QUERY ="Select j.nom,e.libelle from Equipe e ,Joueur j ";
    		    net.sf.hibernate.Query query =session.createQuery(SQL_QUERY);
    			List list = s.find(SQL_QUERY);
    			
    			Iterator it=list.iterator();
    			   		     while (it.hasNext()) {
    				 Object[] row = (Object[]) it.next();
    				 String libelle=(String)row[1];
    				 String nom =(String)row[0];
    			 String id=EquipeService.idByLogin(libelle);
    				 String id_j=JoueurService.login(nom);
    				 System.out.println("id"+id);
    				 System.out.println("id_j"+id_j);
    				 if(id.equals(id_j)){
    				
    		          listeEquipe.add(row[0]);
    		          listeEquipe.add(row[1]);
    		         				   		     	}			} }catch(Exception e){
    				e.printStackTrace();
    			}finally {
    				try {
    					SessionManager.closeSession();
    				}
    				catch (HibernateException e){
    					e.printStackTrace();
    					
    				}
    			   } 
    	return listeEquipe;
    }

    Les lignes coloriées en rouge sont les plus importantes .jespére que ca va vous aider .
    Je remercie tous ceux qui m'ont aidé
    bonne journée

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/12/2011, 12h46
  2. java.lang.ClassCastException avec RMI
    Par yozine dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 28/06/2007, 22h19
  3. Probleme de cast java.lang.ClassCastException
    Par pracede2005 dans le forum Collection et Stream
    Réponses: 8
    Dernier message: 18/05/2007, 12h15
  4. Réponses: 16
    Dernier message: 10/01/2006, 22h02
  5. [MySQL] Probleme de liaison de champs entre deux tables
    Par ept35 dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 16/12/2005, 16h34

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