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 :

chargement des donnees d'une table


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut chargement des donnees d'une table
    Bonjour,
    j'ai une table TmpAjustCpe qui reference une table projet
    voici ds le fichier de mapping projet.xml la partie qui implemente cette relation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     <set name="tmpAjustCpes" inverse="true" >
                <key>
                    <column name="PRJ_ID" precision="7" scale="0" not-null="true" />
                </key>
                <one-to-many class="com.thales.project.TmpAjustCpe" />
            </set>
    ds le bean associe a une table ajustCpe qui a une propriete projet,
    , j'ai ajoute un getter qui essaie d'acceder a
    a une propriete de TmpAjustCpe, ci dessous le bean ajustcpe
    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
     
    public class AjustCpe implements java.io.Serializable {
    private Projet projet;
    /* d'autres proprietes */
     
     
    // voici ce getter 
     
    public BigDecimal getDernierCpeEmporte() {
            if(getProjet().getTmpAjustCpes()!=null){
     
     
            for (Iterator<TmpAjustCpe> iterator = getProjet().getTmpAjustCpes().iterator(); iterator.hasNext();) {
                TmpAjustCpe tmpAjustCpe = (TmpAjustCpe) iterator.next();
                return tmpAjustCpe.getDernierCpeEmporte();
            }
            }
            return BigDecimal.ZERO;
     
        }
    }
    le probleme c'est que les donnees liees a TmpAjustCpe ne sont pas chargees
    quelqu'un saurait que dois-je rajouter au fichier xml pour que ces donnees soient chargees?

    voici l'erreur que j'ai eu
    org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.thales.project.Projet.tmpAjustCpes, no session or session was closed
    Merci
    Cordialement
    Sallemel

  2. #2
    Membre chevronné Avatar de djsnipe
    Inscrit en
    Mai 2008
    Messages
    440
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 440
    Par défaut
    Cherche LazyInitializationException sur le forum, c'est un problème classique.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut
    j'ai cherche au forum, certains proposent de faire l'initialisation entre l'ouverture de la transaction et le commit, mais moi je travaille avec du HQL, c'est la version 3.2 d'hibernate
    donc je vois pas vraiment comment initiliaser cette propriete


    Cdlt
    Sallemel

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Tu as plusieurs solutions qui ont déjà été expliquées :
    - mettre le lazy à false dans le mapping (pas la bonne solution)
    - charger ta collection tant que tu as accès à ta session hibernate :
    - Hibernate.initialize(taCollection)
    - une requête HQL en utilisant un fetch join
    - utiliser un Criteria toujours en utilisant un fetch

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 190
    Par défaut
    Bonjour fr1man,
    merci pour votre reponse,
    sinon, si j'utilise la methode fetch join
    au niveau du modele
    j'ai une propriete ajustCpe qui a une propriete projet
    et la propriete projet a une propriete Set<TmpAjustCpe> tmpAjustCpes
    mon besoin c'est que Set<TmpAjustCpe> soit renseigne
    pour cela voici la modif :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "from com.thales.project.AjustCpe ajustCpe left join fetch ajustCpe.projet.tmpAjustCpes where "  +condition
    est ce que cela me permetrais de loader les donnees tmpAjustCpes associes a chaque ajustcpe de la liste que je recupere du select ?


    Cdlt
    Sallemel

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Oui c'est le principe.

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

Discussions similaires

  1. suppression des donnees d'une table sans liberation de memoire
    Par kssillati dans le forum Administration
    Réponses: 3
    Dernier message: 06/09/2010, 18h53
  2. CSV fichiers et chargement des données dans une table
    Par Lolitaaa dans le forum Oracle
    Réponses: 2
    Dernier message: 01/06/2010, 15h21
  3. recuperation des donnees depuis une table
    Par nadia123456 dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/09/2008, 15h35
  4. chargement des images dans une table
    Par sandy07 dans le forum Bases de données
    Réponses: 3
    Dernier message: 20/04/2007, 09h37
  5. Réponses: 2
    Dernier message: 17/10/2006, 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