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 ResultSet lors d'un createSQLQuery


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
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut Probleme ResultSet lors d'un createSQLQuery
    Bonjour,

    Voici mon probleme:

    Dans mon application je dois recuperer une liste d'enregistrements sous forme d'objet.

    Pour cela j'utilise la methode createSQLQuery car je n'ai pas les pojo Hibernate correspondant a ces enregistrement.

    De plus la base ayant plus de 7 millions d'enregistement dans chaque tables il me serait trop long de charger l'objet metier d'Hibernate a chaque fois.

    voici le code de ma fonction recuperant la liste:
    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
    public List getListeVoyage (int i)
    	{List recupVoyage = null;
    	try
    	{
    		Session session = HibernateUtil.currentSession();
     
    		recupVoyage = session.createSQLQuery(
                         "select ville.nom,fournisseur.nom"+
    		    " from fournisseur ,ville,destination"+
        	            " where destination.ville = ville.id "+
                        " and destination.fournisseur = fournisseur.id"+
                        " and destination.id=" +i).list();
     
    		session.clear();
     
    	}catch(Exception e){Affichage.affiche("Erreur lors de la recuperation des voyages\n"+e);}
    	return recupVoyage;
    	}
    Le probleme que je rencontre c'est que comme vous pouvez le constater je recupere deux fois la colonne NOM mais dans deux tables differente.

    Seulement Hibernate dans le resultset m'injecte deux fois la meme valeur (par exemple il me met Lyon dans les deux champs).

    Je demande donc votre aide car mes connaissances sont limité vu que je suis debutant dans ce domaine.

    Merci et a bientot

  2. #2
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Tu peux utiliser un Alias ça devrait remettre les pendule d'Hibernate à l'heure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "select ville.nom as nom1,fournisseur.nom as nom2"+
    Tu récupère ensuite les champs des colonne nom1 et nom2. Suivant la base de donnée il faut ou pas mettre le as.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut
    J'ai essayé de faire comme tu le dis mais une exception est levée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRAVE: Column 'nom' not found.
    J'ai essayé en mettant 'as' ou pas et ca me met toujours cette erreur...

  4. #4
    Membre Expert Avatar de guigui5931
    Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2006
    Messages
    1 667
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 667
    Par défaut
    Tu a cette erreur à la requête ou à la récupération du résultats? Montre ce que tu as fait stp

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut
    L'erreur se produit a l'execution, 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
    17
    18
    19
    20
    21
    22
    23
    24
    recupVoyage = session.createSQLQuery("select prix.date_depart_debut,"+
    		"prix.date_depart_fin,"+
    		"prix.jours_semaine_dep,"+
    		"ville.nom as nom1,"+
    		"pays.libelle,"+
    		"destination.ville,"+
    		"prix.nbre_nuits,"+
    		"prix.nbre_jours,"+
    		"produitto.interne_to,"+
    		"libelle.valeur,"+
    		"prix.en_promotion,"+
    		"fournisseur.nom as nom2"+
    " from prix ,fournisseur ,ville,"+
         "destination, pays ,produitto,"+
    	 "edito,libelle,catalogue"+
    " where prix.ville_depart=ville.id"+
    	" and destination.pays=pays.id"+
    	" and produitto.catalogue = catalogue.id"+
    	" and catalogue.fournisseur=fournisseur.id"+
    	" and produitto.nom=edito.id"+
    	" and edito.id=libelle.edito"+
    	" and prix.produitto=produitto.id"+
    	" and destination.produitto=produitto.id"+
    	" and produitto.id=" +i).list();
    Je te parle de l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRAVE: Column 'nom' not found.
    L'erreur que j'ai en fait n'est pas une erreur, c juste que le resultset m'affecte la meme valeur pour les deux colones.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 15
    Par défaut
    bon j'ai trouvé la reponse dans la doc d'hibernate.

    En fait c tres simple, voici le code pour ceux qui auraient le meme probleme.

    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
    recupVoyage = session.createSQLQuery("select *"+
    		" from prix ,fournisseur ,ville,"+
    		     "destination, pays ,produitto,"+
    			 "edito,libelle,catalogue,tarif"+
    		" where prix.ville_depart=ville.id"+
    			" and tarif.prix=prix.id"+
    			" and destination.pays=pays.id"+
    			" and produitto.catalogue = catalogue.id"+
    			" and catalogue.fournisseur=fournisseur.id"+
    			" and produitto.nom=edito.id"+
    			" and edito.id=libelle.edito"+
    			" and prix.produitto=produitto.id"+
    			" and destination.produitto=produitto.id"+
    			" and produitto.id=" + i).addScalar("prix.date_depart_debut")
    									.addScalar("prix.date_depart_fin")
    									.addScalar("prix.jours_semaine_dep")
    									.addScalar("ville.nom")
    									.addScalar("pays.libelle")
    									.addScalar("destination.ville")
    									.addScalar("prix.nbre_nuits")
    									.addScalar("prix.nbre_jours")
    									.addScalar("produitto.interne_to")
    									.addScalar("libelle.valeur")
    									.addScalar("prix.en_promotion")
    									.addScalar("fournisseur.nom")
    									.addScalar("tarif.montant")
    									.list();
    Voila , allé a bientot

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

Discussions similaires

  1. Probleme Resultset et valeur NULL dans la bdd
    Par banania dans le forum JDBC
    Réponses: 4
    Dernier message: 18/04/2007, 12h54
  2. problem oracle8i lors de l exportation
    Par mortet dans le forum Oracle
    Réponses: 1
    Dernier message: 24/01/2007, 18h09
  3. [type complex] problemes bizzards lors de la deserialisation
    Par djynwk dans le forum Services Web
    Réponses: 6
    Dernier message: 23/11/2006, 18h43
  4. [WinForms]probleme affichage lors d'un traitement
    Par Rankyboy dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 15/06/2006, 14h13
  5. [JDBC] Probleme ResultSet
    Par DanZzz dans le forum JDBC
    Réponses: 8
    Dernier message: 26/07/2005, 06h47

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