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 de mapping avec Hibernate


Sujet :

Hibernate Java

  1. #1
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut Probleme de mapping avec Hibernate
    Bonjour tout le monde!!
    Je suis un debutant concernant l'utilisation de hibernate.
    je signale que je travaille avec Hibernate 3.0
    jé appliqué tout ce que jé trouvé ds un tutoriel mé ça n 'a pas marché.
    voila ce que jé fé :
    Ma classe de persistance :-------------------------------
    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
    package packHibo;
    public class personne {
    	private int id;
    	private String nom;
    	public void setId(int i){
    		id=i;
    	}
    	public void setNom(String n){
    		nom=n;
    	}
    	public int getId(){
    		return id;
    	}
    	public String getNom(){
    		return nom;
    	}
    }
    Mon fichhier de mapping------------------------
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC
              "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping>
    	<class name="packHibo.personne" table="personne">
    		<id column="id" name="id" type="java.lang.Integer">
    			<generator class="increment" />
    		</id>
    		<property column="nom" length="20" name="nom" not-null="true" type="java.lang.String" />
    	</class>
    </hibernate-mapping>
    Mon fichier de configuration-----------------------
    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
    <?xml version='1.0' encoding='UTF-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
              "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
              "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
     
    <!-- Generated by MyEclipse Hibernate Tools.                   -->
    <hibernate-configuration>
     
    <session-factory>
    	<property name="myeclipse.connection.profile">ProTest</property>
    	<property name="connection.url">jdbc:mysql://localhost:3306/bdtest</property>
    	<property name="connection.username">root</property>
    	<property name="connection.password"></property>
    	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    	<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
     
    </session-factory>
    <mapping resource="personne.hbm.xml"/>
    </hibernate-configuration>
    le fichier HibernateSessionFactory :---------------------
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    package packHibo;
     
    import org.hibernate.HibernateException;
    import org.hibernate.Session;
    import org.hibernate.SessionFactory;
    import org.hibernate.Transaction;
    import org.hibernate.cfg.Configuration;
     
    /**
     * Configures and provides access to Hibernate sessions, tied to the
     * current thread of execution.  Follows the Thread Local Session
     * pattern, see {@link http://hibernate.org/42.html}.
     */
    public class HibernateSessionFactory {
    	//private Session session;
        /** 
         * Location of hibernate.cfg.xml file.
         * NOTICE: Location should be on the classpath as Hibernate uses
         * #resourceAsStream style lookup for its configuration file. That
         * is place the config file in a Java package - the default location
         * is the default Java package.<br><br>
         * Examples: <br>
         * <code>CONFIG_FILE_LOCATION = "/hibernate.conf.xml". 
         * CONFIG_FILE_LOCATION = "/com/foo/bar/myhiberstuff.conf.xml".</code> 
         */
        private static String CONFIG_FILE_LOCATION = "/packHibo/hibernate.cfg.xml";
     
        /** Holds a single instance of Session */
    	private static final ThreadLocal threadLocal = new ThreadLocal();
     
        /** The single instance of hibernate configuration */
        private static final Configuration cfg = new Configuration();
     
        /** The single instance of hibernate SessionFactory */
        private static org.hibernate.SessionFactory sessionFactory;
     
        /**
         * Returns the ThreadLocal Session instance.  Lazy initialize
         * the <code>SessionFactory</code> if needed.
         *
         *  @return Session
         *  @throws HibernateException
         */
        public static Session currentSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
     
    		if (session == null || !session.isOpen()) {
    			if (sessionFactory == null) {
    				try {
    					cfg.configure(CONFIG_FILE_LOCATION);
    					sessionFactory = cfg.buildSessionFactory();
    				} catch (Exception e) {
    					System.err
    							.println("%%%% Error Creating SessionFactory %%%%");
    					e.printStackTrace();
    				}
    			}
    			session = (sessionFactory != null) ? sessionFactory.openSession()
    					: null;
    			threadLocal.set(session);
    		}
     
            return session;
        }
     
        /**
         *  Close the single hibernate session instance.
         *
         *  @throws HibernateException
         */
    /////////////////////////////////////////Mamethode
        public static void AddPersonne(personne p) throws Exception{
        	SessionFactory sessionFactory=new Configuration().buildSessionFactory();
        	Session session=sessionFactory.openSession();
        	Transaction tx=session.beginTransaction();
        	session.save(p);
        	tx.commit();
        	session.close();
        }
        public static void closeSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
            threadLocal.set(null);
     
            if (session != null) {
                session.close();
            }
        }
    //////////////////////////////////////////////////////////
        /**
         * Default constructor.
         */
        private HibernateSessionFactory() {
        }
    }
    Ma classe main :--------------------------------------
    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
    package packHibo;
    public class classMain {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		personne p=new personne();
    		//p.setId(1);
    		p.setNom("ali");
    		try{
    			HibernateSessionFactory.AddPersonne(p);
    		}catch(Exception e){
    			System.out.println("Erreur Mapping");
    		}
    	}
    }

    Mé il me donne les erreurs suivants :

    log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
    log4j:WARN Please initialize the log4j system properly.
    Erreur Mapping

    sachant que jé ajouté deja le log4j.jar.

  2. #2
    Membre régulier Avatar de venegan
    Inscrit en
    Mars 2005
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 72
    Points : 70
    Points
    70
    Par défaut
    Ceci devrait pouvoir t'aider provisoirement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.apache.log4j.BasicConfigurator.configure();

  3. #3
    Membre régulier Avatar de et.rond.et.rond
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 110
    Points : 119
    Points
    119
    Par défaut
    j'ai la même erreur et je crois qu'il faut configurer log4j, ça n'a rien à voir avec Hibernate
    par contre toute mon application fonctionne correctement donc je n'ai pas encore chercher comment configurer ça, je vais mettre le suivi sur ce message comme ça si quelqu'un trouve je prends aussi la solution

  4. #4
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    log4j est totalement indépendant d'Hibernate. Pour le configurer :

    Un fichier "log4j.properties" à mettre à la racine du classpath. Voici un exemple de fichier pour 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    ### direct log messages to stdout
    #################################
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{DATE} %5p %c{1}:%L - %m%n
     
    ### direct messages to file hibernate.log
    ##########################################
    log4j.appender.hbm=org.apache.log4j.FileAppender
    log4j.appender.hbm.File=hibernate.log
    log4j.appender.hbm.layout=org.apache.log4j.PatternLayout
    log4j.appender.hbm.layout.ConversionPattern=%d{DATE} %5p %c{1}:%L - %m%n
     
    ### redirection par défaut
    ##########################
    log4j.rootLogger=info, stdout
     
    ### Hibernate - redirections
    ##########################
    log4j.logger.org.hibernate=info 
    ### log just the SQL
    log4j.logger.org.hibernate.SQL=info 
    ### log JDBC bind parameters ###
    log4j.logger.org.hibernate.type=info 
    ### log schema export/update ###
    #log4j.logger.org.hibernate.tool.hbm2ddl=info
    ### log cache activity ###
    #log4j.logger.org.hibernate.cache=debug
    ### log transaction activity
    #log4j.logger.org.hibernate.transaction=debug
    Et pour plus de détail, voir ce tutoriel de DVP. Bon courage

  5. #5
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut
    J'ai ajouté le mem fichier log4j.propertises proposé par BizuR à mon classpath. et toujours les messages de warning me sortent, et rien ne se fait.
    je sais s'il y a une configuration unique ou cela depond de mon application.

  6. #6
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Après, ca dépend de plusieurs choses. Normalement, en simple utilisation d'Hibernate, le fichier log4j est facultatif et les sorties se font sur console.

    A savoir maintenant si ton programme continue ou s'arrête après ces warn ou non. Des warns ne sont pas bloquant et l'appli peut, normalement, tourner, si tu as une erreur de mapping, cela vient surement d'autre part.

    Es-tu sous un environnement tomcat ou autre serveur ou bien est-ce seulement une appli standalone ?!?

  7. #7
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut
    Je suis ds un environnement tomcat.
    mon application s'arrete juste apres les warnings.
    et rien ne se passe au niveau de ma base de donnée

  8. #8
    Membre régulier
    Inscrit en
    Juillet 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Juillet 2006
    Messages : 74
    Points : 90
    Points
    90
    Par défaut
    Est-ce que ta table personne existe deja dans ta base de donnée ?
    si ce n'est pas le cas, ajoute la ligne suivante dans fichier de config
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <property name="hibernate.hbm2ddl.auto">update</property>
    ça permettra de créer ta table et aussi d'insérer des données

  9. #9
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    ok donc tes messages de log ne sont pas redirigé vers la console par défaut ? Va jeter un oeil dans le fichier {TOMCAT_HOME}/conf/catalina.out et regarde si tu ne vois pas un log plus précis

  10. #10
    Membre régulier Avatar de kodo
    Profil pro
    Chef de projet technique
    Inscrit en
    Mars 2006
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet technique

    Informations forums :
    Inscription : Mars 2006
    Messages : 300
    Points : 92
    Points
    92
    Par défaut
    il n y a rien de precis dans ce fihchier.
    Le probleme c'est que j'ai trouvé un projet avec la configuration du fichier log4j.propertises, et pourtant il me marche pas.
    toujours ce probleme de warning, avec des exceptions cette fois.

  11. #11
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Il se peut que tu utilises des loggers qui ne sont pas référencés dans ton log4j.properties en question. Regarde chacune des classes que tu implémentes pour voir si cela ne viendrait pas de la (problème que j'ai eu, d'où la remarque). Quant à ton erreur, nous ne pourrons t'aider si tu ne trouves pas la trace d'hibernate

Discussions similaires

  1. probleme de mapping avec l'attribut "type"
    Par tirisus dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/04/2009, 12h13
  2. probleme de mapping avec une bd oracle 9i
    Par j_esti dans le forum Hibernate
    Réponses: 1
    Dernier message: 13/05/2008, 12h05
  3. Génération des fichiers DAO mapping avec hibernate
    Par hibernouteTn dans le forum Hibernate
    Réponses: 9
    Dernier message: 24/04/2008, 19h08
  4. Probleme de Mapping avec Sequence
    Par P4dre dans le forum JPA
    Réponses: 12
    Dernier message: 20/12/2007, 14h02
  5. Réponses: 2
    Dernier message: 17/07/2006, 15h45

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