Bonjour à tous,
Voilà, je suis tout nouvellement sous eclipse version 3.2.1. J'utilise Maven2 via son plugin pour Eclipse.
J'ai commencé par créer un projet maven via mvn archetype:create puis un petit coup de mvn eclipse:eclipse et me voilà avec un beau petit projet eclipse bien ... vide...
Mon but était de réaliser quelques tests avec hibernate sous hsqldb... J'ai donc modifié mon pom en conséquence :
J'essaie dans un premier temps de générer les classes relatifs à un fichier Book.hbm.xml placé sous src/main/resources :
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 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test.sib</groupId> <artifactId>hibernate-test</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>Hibernate test</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>hibernate</groupId> <artifactId>hibernate</artifactId> <version>3.0.5</version> <scope>compile</scope> </dependency> <dependency> <groupId>hsqldb</groupId> <artifactId>hsqldb</artifactId> <version>1.8.0.7</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <configuration> <mainClass>test.sib.App</mainClass> </configuration> </plugin> </plugins> </build> </project>
Dans ce même répertorie se trouve le fichier de configuration hibernate qui ressemble à ca :
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 <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" > <hibernate-mapping package="test.siberia.hibernate"> <class name="Book" table="books"> <meta attribute="class-description"> Cette classe représente un livre appartenant à une collection. </meta> <id name="id" type="int" column="book_id"> <meta attribute="scope-set">protected</meta> <meta attribute="field-description"> L'ISBN n'est pas utilisé comme identificateur unique afin de pouvoir posséder plusieurs exemplaires d'un même ouvrage dans sa collection. </meta> <generator class="native" /> </id> <property name="author" type="string" not-null="true" /> <property name="title" type="string" not-null="true" /> <property name="cover" type="string" not-null="true"> <meta attribute="field-description"> Contient le chemin vers une image de la couverture. Ce chemin peut être une URL ou un chemin local. </meta> </property> <property name="published" type="date"> <meta attribute="field-description">Date de publication</meta> </property> </class> </hibernate-mapping>
J'ai installé le plugin Hibernate-Tools 3.2.0 beta 8.
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 <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" "http://hibernate.sourceforge.net/hibernate-configuration-2.0.dtd"> <hibernate-configuration> <session-factory > <!-- local connection properties --> <property name="hibernate.connection.url">jdbc:hsqldb:db/books</property> <property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property> <property name="hibernate.connection.username">sa</property> <property name="hibernate.connection.password"></property> <!-- dialect for HypersonicSQL --> <property name="dialect">org.hibernate.dialect.HSQLDialect</property> <property name="hibernate.show_sql">false</property> <property name="hibernate.use_outer_join">true</property> <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JTATransactionFactory</property> <property name="jta.UserTransaction">java:comp/UserTransaction</property> <mapping resource="Book.hbm.xml"/> </session-factory> </hibernate-configuration>
Par l'intermédiaire de la vue "Hibernate Configurations", j'ai créé une configuration Hibernate pour le plugin en indiquant les emplacements de mon fichier cfg.xml et du jar de hsqldb.
Le premier problème que je rencontre est que lorsque j'essaie d'étendre dans l'arbre des configurations Hibernate, le noeud correspondant à la configuration que je viens de créer, je me prend un méchant :
allez, vlan...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 org.hibernate.MappingNotFoundException: resource: Book.hbm.xml not found <No message>
J'ai essayé différents chemins pour pointer le fichier dans le fichier cfg.xml mais rien n'y fait....
Pourtant, la compilation et le lancement via maven d'un test sommaire de ce style :
me crée bien un répertoire db (avec trois fichiers books.* ) sous le répertoire project 'hibernate-test' ce qui me laisse penser que j'arrive bien à me connecter à la base hsql et puis dans les messages de log au lancement du petit programme, j'ai la trace suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public static void main( String[] args ) throws HibernateException { System.out.print("launching App"); Session session = HibernateUtil.currentSession(); Transaction tx = session.beginTransaction(); tx.commit(); HibernateUtil.closeSession(); }
ce qui me laisse penser que via maven, le fichier est bel et bien trouvé !!!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [exec] INFO: Mapping resource: Book.hbm.xml [exec] 13 oct. 2006 22:40:53 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues [exec] INFO: Mapping class: test.siberia.hibernate.Book -> books [exec] 13 oct. 2006 22:40:53 org.hibernate.cfg.Configuration doConfigure [exec] INFO: Configured SessionFactory: null
Quelqu'un pourrait-il m'éclairer un peu???
D'avance merci
Partager