Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2965 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [hibernate] Problème avec les requetes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[hibernate] Problème avec les requetes

n°1178981
molmock
Rythm is love ....
Posté le 18-08-2005 à 17:51:58  profilanswer
 

Bonjour,
 
J'aimerais savoir comment exploiter le résultat d'une requête de type SQLQuery lorsque celle ci est le fruit de 2 tables dans ma base de données.
 
Voici un exemple avec une requête donnant 2 colonnes ou je m'y prend sans doute mal :

Code :
  1. public static void main(String[] args) throws HibernateException, TechniqueException {
  2.  IDatabaseManager HDM = HibernateDatabaseManager.getInstance();
  3.  Session session=HDM.getSession();
  4.  Transaction tx = session.beginTransaction();
  5.  SQLQuery requete = session.createSQLQuery("select utinom,serlibelle " +
  6.           "from t_utilisateur u, t_service s " );
  7.  System.out.println(requete.list().size());// On vérifie bien que ca a marché
  8.  List resultat = requete.list();  //je récupère un tableau de 2 colonnes
  9.  List ligne = (List)resultat.get(1); //je récupere une ligne -> plantage
  10.  System.out.println((String)ligne.get(0)+"-"+(String)ligne.get(1));
  11.  tx.commit();
  12.  HDM.getSession().close();
  13. }


 
Mon erreur vient sans doute de mes lacunes sur les tableaux en java, je n'arrive pas à trouver le bon type qui me permettrait de convertir une ligne de façon à l'exploiter.
 
Précisions :  
Ici utinom et serlibelle sont de type String tous les 2.
 
Merci de toute aide .

mood
Publicité
Posté le 18-08-2005 à 17:51:58  profilanswer
 

n°1178985
bartleby
Posté le 18-08-2005 à 17:56:28  profilanswer
 

Qu'appelles-tu plantage ?
 
ClassCastException ?
 
Essaye avec un iterator:
 

Code :
  1. for (Iterator it = resultat.iterate(); it.hasNext();){
  2. System.out.println(it.next());
  3. }


Message édité par bartleby le 18-08-2005 à 18:03:22
n°1178995
molmock
Rythm is love ....
Posté le 18-08-2005 à 18:01:14  profilanswer
 

Alors :
1. j'ai java.lang.ClassCastException en ligne 12
2. ok j'ai testé avec d'autres valeurs ça ne change rien
3. l'instruction en ligne 9 me renvoie 735 donc ma liste contient 735 lignes, de 0 à 734 il doit y avoir du contenu apparemment

n°1178999
molmock
Rythm is love ....
Posté le 18-08-2005 à 18:04:28  profilanswer
 

ok j'essaie avec un iterator

n°1179005
bartleby
Posté le 18-08-2005 à 18:07:08  profilanswer
 

A la place de ca:
 
List ligne = (List)resultat.get(1);
 
essaye ca et dis moi ce que ca affiche:
 
System.out.println(resultat.get(1).getClass().getName());
 
Selon la doc ( http://www.hibernate.org/hib_docs/ [...] tml#list() ), une ligne est represente pas des  Object[], pas une deuxieme liste


Message édité par bartleby le 18-08-2005 à 18:09:09
n°1179006
molmock
Rythm is love ....
Posté le 18-08-2005 à 18:08:16  profilanswer
 

J'ai mis pratiquement texto ce que tu m'as filé :
 

Code :
  1. for (Iterator it = resultat.iterator(); it.hasNext();){
  2.         System.out.println(it.next());
  3.     }


 
j'obtient une liste avec qqch comme ca à chaque ligne :
[Ljava.lang.Object;@50ca0c
 
J'essaie de faire les transtypage adhoc ...

n°1179008
molmock
Rythm is love ....
Posté le 18-08-2005 à 18:10:21  profilanswer
 

Maintenant j'essaie avec getclass().getname() :
[Ljava.lang.Object;

n°1179010
molmock
Rythm is love ....
Posté le 18-08-2005 à 18:12:26  profilanswer
 

Ok merci pour l'info (Object[]), je vais essayer.
Merci pour ta réactivité surtout !

n°1179012
bartleby
Posté le 18-08-2005 à 18:13:24  profilanswer
 

Reactivie : Bof, c'est midi chez moi :)

n°1179021
molmock
Rythm is love ....
Posté le 18-08-2005 à 18:21:42  profilanswer
 

Tu serais pas aux States ou au canada toi ??? ;)
 
Sinon j'ai bien peur de faire le boulet mais j'ai du mal avec les Object(] apparemment :
 

Code :
  1. Object[] ligne = (Object[]) resultat.get(0);
  2. System.out.println((String)ligne[0]);


 
Ca me donne une indexOutOfBounds, j'ai essayé d'autres façon mais marche pas :( .
Sans que ce soit trop te demander tu le récupère comment l'object[] toi ?

mood
Publicité
Posté le 18-08-2005 à 18:21:42  profilanswer
 

n°1179078
molmock
Rythm is love ....
Posté le 18-08-2005 à 19:09:09  profilanswer
 

Bon bah j'y suis toujours pas arrivé, je réessaierai demain, merci pour le coup de main qd même


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [hibernate] Problème avec les requetes

 

Sujets relatifs
probleme avec ClassPathResource[RESOLU] probleme compil opengl / glut sous linux
Problème avec exec et la redirection vers un fichierproblème html bloquer textarea !!
Oracle9 : Probleme de lockproblème de souris OpenGL
Problème de scrollbar[J2EE] [i18n / l10n] Problème avec l'internationalisation
Problème de loadingProblème de clic sur un object movieClip
Plus de sujets relatifs à : [hibernate] Problème avec les requetes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR