Bonjour,

Je suis débutant en hibernate et je souhaiterais me mettre directement aux annotations.
La première étape est donc la configuration de mon projet Eclipse.

Je suis la documentation
http://www.hibernate.org/hib_docs/an...single/#d0e754

Base de donnée MySQL :
Table : clients
Champs : client_id (clef primaire), groupe_client


Classe POJO (je crois que c'est le terme pour la classe beans)

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 com.hibernate;
import java.io.Serializable;
import org.hibernate.annotations.Entity;
 
@Entity
public class clients implements Serializable{
 
        private static final long serialVersionUID = 1L;
	int client_id;
 
	private String groupe_client;
 
	public int getClient_id() {
		return client_id;
	}
	public void setClient_id(int client_id) {
		this.client_id = client_id;
	}
	public String getGroupe_client() {
		return groupe_client;
	}
	public void setGroupe_client(String groupe_client) {
		this.groupe_client = groupe_client;
	}	
}
Mon fichier hibernate.cfg.xml :

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
<?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">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">root</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/bdd_crm</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <mapping package="com.hibernate"/>
        <mapping class="clients"/>
    </session-factory>
</hibernate-configuration>
Je ne sais pas si j'ai bien fait de fusionner la configuration de la connexion. Dans la documentation, on voit le mapping entre les balises session-factory

http://www.hibernate.org/hib_docs/an...single/#d0e754
Les packages et les classes annotées sont déclarés dans votre fichier de configuration XML habituel (généralement hibernate.cfg.xml). Voici un équivalent de la déclaration ci-dessus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
 
        <hibernate-configuration>
          <session-factory>
            <mapping package="test.animals"/>
            <mapping class="test.Flight"/>
            <mapping class="test.Sky"/>
            <mapping class="test.Person"/>
            <mapping class="test.animals.Dog"/>
            <mapping resource="test/animals/orm.xml"/>
          </session-factory>
        </hibernate-configuration>

Mon fichier de test clientsTest
qui teste l'insertion :
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
 
....
import com.hibernate.HibernateUtil;
import com.hibernate.clients;
import org.hibernate.Session;
 
public class clientsTest {
@Test
public void testSetClient_id() {
		clients c = new clients ();
		//Session session = HibernateUtil.currentSession();
		Session session = HibernateUtil.getSession();
		session.beginTransaction();
 
		c.setClient_id(88);
		c.setGroupe_client("TEST HIBERNATE");
 
		session.save(c);
		session.getTransaction().commit();
	}

HibernateUtile.java (copié collé de la documentation)
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
package com.hibernate;
 
import org.hibernate.*;
import org.hibernate.cfg.*;
 
public class HibernateUtil {
 
private static final SessionFactory sessionFactory;
    static {
        try {
            sessionFactory = new AnnotationConfiguration().buildSessionFactory();
        } catch (Throwable ex) {
            // Log exception!
            throw new ExceptionInInitializerError(ex);
        }
    }
    public static Session getSession()
            throws HibernateException {
        return sessionFactory.openSession();
    }
}
Malheuresement, j'obtiens ce message d'erreur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
	java.lang.ExceptionInInitializerError
	at com.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:16)
	at com.hibernate.test.clientsTest.testGetGroupe_client(clientsTest.java:29)
....
D'après vous, ou est ce que je me suis trompé ?
J'ai fait quelques recherches sur Google sur le mot clef java.lang.ExceptionInInitializerError mais malheureusement je pense que cela ne correspond pas au meme problème