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 :

erreur Hibernate sous eclipse


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut erreur Hibernate sous eclipse
    Bonjour tout le monde,
    Suis tout nouveau dans la programmation avec les frameworks de persistance (hibernate 3 notamment). J'ai realisé un petit code qui devrait permettre de stocker des elements dans ma base de données (mysql) et là j'ai des problèmes lors de l'exécution.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Exception in thread "main" org.hibernate.HibernateException: No CurrentSessionContext configured!
    	at org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:542)
    	at progPrincipal.createAndStoreEvent(Unknown Source)
    	at progPrincipal.main(Unknown Source)
    il faut dire que la couche de persistance, Je l'ai généré grace au API. Au secours
    ci dessous le code de mon fichier de configuration hibernate

    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
    <hibernate-configuration>
        <session-factory >
     
    		<!-- local connection properties -->
    		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property>
    		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    		<property name="hibernate.connection.username">user</property>
    		<property name="hibernate.connection.password">pwd</property>
    		<!-- property name="hibernate.connection.pool_size"></property -->
     
    		<!-- dialect for MySQL -->
            <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
     
            <property name="hibernate.show_sql">true</property>
            <property name="hibernate.transaction.factory_class">
            	org.hibernate.transaction.JDBCTransactionFactory
            </property>
        </session-factory>
    </hibernate-configuration>

  2. #2
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    comment initialises-tu ta SessionFactory ?

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    voici le code dans lequel je defini ma sessionfactory
    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
    package pckEssai;
     
    import org.hibernate.*;
    import org.hibernate.cfg.*;
     
    public class HibernateUtil {
        public static final SessionFactory sessionFactory;
     
        static {
            try {
                // Création de la SessionFactory à partir de hibernate.cfg.xml
                sessionFactory = new Configuration().configure().buildSessionFactory();
            } catch (Throwable ex) {
                // Make sure you log the exception, as it might be swallowed
                System.err.println("Initial SessionFactory creation failed." + ex);
                throw new ExceptionInInitializerError(ex);
            }
        }
     
        public static final ThreadLocal session = new ThreadLocal();
     
        public static SessionFactory getSessionFactory() {
            return sessionFactory;
        }
    }
    et dans le main je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Session session = HibernateUtil.getSessionFactory().getCurrentSession();
     
            session.beginTransaction();

  4. #4
    Membre émérite Avatar de Gardyen
    Homme Profil pro
    Bio informaticien
    Inscrit en
    Août 2005
    Messages
    637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bio informaticien

    Informations forums :
    Inscription : Août 2005
    Messages : 637
    Par défaut
    ce n'est pas la bonne façon de créer une session, en fait tu cherches la session courante alors qu'elle n'a pas été créée !

    Tu n'as pas de méthode currentSession dans ton HibernateUtil ?

    elle ressemble à ça chez moi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public static Session currentSession()
    	throws HibernateException {
    		Session singleton = (Session) session.get();
    		// open a new session if this thread doesn't have any
    		if (singleton == null) {
    			singleton = sessionFactory.openSession();
    			session.set(singleton);
    		}
    		return singleton;
    	}
    ensuite tu crées ta session par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Session session = HibernateUtil.currentSession();

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    774
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2005
    Messages : 774
    Par défaut
    merci! j'essai et je te fais signe!!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 42
    Par défaut
    sur le même thème, en fait j'utilise le plugin hibernate synchronizer pour eclipse. Celui-ci me génère beaucoup de choses comme les classes DAO. J'ai donc eu cette même erreur lorsque j'ai essayé d'utiliser hibernate pour la première fois, il ne trouvait aucune session.
    En fait, pour résoudre ce problème j'ai modifié une des classes générés, qui s'appelle base_rootDAO : dans celle-ci, la méthode getQuery comportait un try catch, donc la clause finale fermait la session (session.close() ) : j'ai donc enlevé cette close finale, et tout a fonctionné... A noter, que ma session factory est géré par Spring...
    Donc voilà, je sais pas si c'est bien ou pas ce que j'ai fait, mais ça marche comme ça. J'ai cherché une explication, mais j'en ai pas trouvé pour le moment...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/05/2007, 16h47
  2. erreur jboss sous eclipse
    Par lebelo dans le forum Wildfly/JBoss
    Réponses: 2
    Dernier message: 14/05/2007, 09h19
  3. Problème Hibernate sous Eclipse
    Par Link3 dans le forum Hibernate
    Réponses: 3
    Dernier message: 05/03/2007, 16h16
  4. [Plugin][Hibernate Synchronizer]Hibernate sous Eclipse
    Par Kalou75 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/10/2005, 23h28
  5. Problèmes avec Hibernate (sous Eclipse)
    Par Pierric dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/04/2005, 14h35

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