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 :

comment charger le fichier hibernate.cfg.xml?


Sujet :

Hibernate Java

  1. #1
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut comment charger le fichier hibernate.cfg.xml?
    Bonjour,
    je cherche une méthode propre à charger mon fichier de configuration qu'est hibernate.cfg.xml.
    mon architecture se présente comme suit :
    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
     
    public abstract class _RootDAO {
     private static SessionFactory sessionFactory;
     /**
      * configure the session factory by reading hibernate.cfg.xml
      */
     public static void initialize () throws HibernateException {
     
     
      File file = new File(Constants.PATH_OF_HIBERNATE_FILE_CONFIG);
     
      Configuration cfg = new Configuration();
      cfg.configure(file);
     
      sessionFactory = cfg.buildSessionFactory();
     }
    .....
    supposons que j'ai deux tables dans ma base de données(personne, fournisseur) , donc j'y attribue deux classes DAO à savoir PersonneDAO et FournisseurDAO.
    comment dois-je appeler le initialize() de ma classe _Root à partir de ces deux classes DAO?
    pour moi je pense que je dois faire un truc qui ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    // pour la table Personne
    import net.sf.hibernate.HibernateException;
    import org.zakoura.hibernate.base.BaseParametrageDAO;
    public class PersonneDAO extends _Root {
     
     public PersonneDAO () throws HibernateException{
      super.initialize();
     
     }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    // pour la table Fournisseur
    import net.sf.hibernate.HibernateException;
    import org.zakoura.hibernate.base.BaseParametrageDAO;
    public class FournisseurDAO extends _Root {
     
     public FournisseurDAO () throws HibernateException{
      super.initialize();
     
     }
    }

    vous voyez bien que à chaque fois je fais appel à la fonction initialize() de la classe mère _Root qui contient les méthodes : save(...) update(...)....

    mais je ne pense pas que ça soit la meilleure façon car en procédant de cette manière à chaque fois je charge mes fichiers de mappings et...je cherche donc une façon pour ne faire ce travail répété qu'une seule fois, pourquoi pas au chargement de mon contexte.
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    La création d'une sessionFactory, c'est à dire, le chargement de ton fichier de configuration Hibernate, ne doit être fait qu'une fois au lancement de ton application, par exemple.
    C'est une tache couteuse.
    Elle ne doit donc pas être associée à un DAO.

  3. #3
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    merci pour ta réponse,
    c'est exactement ce que je cherche à faire, comment appeler le initialize() une seule fois au démarrage de mon application, sachant que mon application est en JSP.
    merci pour vos réponses
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


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

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Tu peux, par exemple, implémenter l'interface ServletContextListener et mettre ton code d'initialisation dans la méthode contextInitialized(ServletContextEvent sce).
    Pense à bien déclarer le listener dans le web.xml.

    Ou alors utiliser le HibernateUtil de la doc Hibernate, qui place l'initilisation dans un bloc static, qui sera appelé au premier accès à Hibernate.

  5. #5
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    c'est bon j'ai résolu mon problème en faisant appel à la méthode initialize() dans une fonction qui retourne la sessionFactory.
    merci encore une fois
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


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

Discussions similaires

  1. Problème fichier hibernate.cfg.xml
    Par mastraze dans le forum Hibernate
    Réponses: 9
    Dernier message: 11/08/2010, 18h28
  2. probleme avec l emplacement du fichier hibernate.cfg.xml
    Par sidoumghar dans le forum NetBeans
    Réponses: 0
    Dernier message: 08/08/2008, 10h32
  3. Problème de lecture du fichier hibernate.cfg.xml
    Par fabiolerusse dans le forum Hibernate
    Réponses: 1
    Dernier message: 06/03/2008, 08h28
  4. impossible de parser le fichier hibernate.cfg.xml
    Par paolo2002 dans le forum Wildfly/JBoss
    Réponses: 9
    Dernier message: 30/05/2007, 17h39
  5. Pb chargement du fichier hibernate.cfg.xml
    Par Calahad dans le forum Hibernate
    Réponses: 1
    Dernier message: 06/09/2006, 11h43

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