Génération de schéma avec Maven Hibernate3 plugin

Je suis en train de configurer un simple hibernate + projet maven. Je suis en suivant les étapes comme mentionné dans le Chapitre 2 de Java presistence avec hibernate (seule diff c'est que je suis à l'aide de maven au lieu de Fourmi). Cependant, tout en essayant de générer le schéma avec maven, hibernate 3 plugin, il semble qu'il n'est pas en mesure de créer les tables nécessaires.

Code & Ressources

POM.xml

<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gs.bce</groupId>
<artifactId>SpringExample</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<maven.compiler.source>1.6</maven.compiler.source>
<maven.compiler.target>1.6</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-c3p0</artifactId>
<version>3.3.2.GA</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.8</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
</dependency>
</dependencies>  
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>hbm2ddl</goal>
</goals>
</execution>
</executions>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>jdbcconfiguration</implementation>
</component>
<component>
<name>hbm2hbmxml</name>
<outputDirectory>src/main/resources</outputDirectory>
</component>
</components>
<componentProperties>
<drop>true</drop>
<configurationfile>/src/main/resources/hibernate.cfg.xml</configurationfile>
<outputfilename>schema.sql</outputfilename>
</componentProperties>
</configuration>
<dependencies>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.0.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>

`

Journal de sortie

Sortie de mon mainclass, où il tente d'accéder à la table des MESSAGES (comme mentionné dans le livre).

18:27:34,357DEBUG SQL:111 - 
select
max(MESSAGE_ID) 
from
MESSAGES Hibernate: 
select
max(MESSAGE_ID) 
from
MESSAGES 18:27:34,363DEBUG JDBCExceptionReporter:92 - could not fetch initial value for increment generator [select max(MESSAGE_ID) from MESSAGES] java.sql.SQLException: user lacks privilege or object not found: MESSAGES

Traitement de sortie

De sortie pour le processus de classes but

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building SpringExample 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ SpringExample ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ SpringExample ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] >>> hibernate3-maven-plugin:2.2:hbm2ddl (default) @ SpringExample >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.4.3:resources (default-resources) @ SpringExample ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 3 resources
[INFO] 
[INFO] <<< hibernate3-maven-plugin:2.2:hbm2ddl (default) @ SpringExample <<<
[INFO] 
[INFO] --- hibernate3-maven-plugin:2.2:hbm2ddl (default) @ SpringExample ---
18:30:54,300  INFO org.hibernate.cfg.Environment - Hibernate 3.3.1.GA
18:30:54,304  INFO org.hibernate.cfg.Environment - hibernate.properties not found
18:30:54,306  INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist
18:30:54,308  INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling
18:30:54,346  INFO org.hibernate.cfg.Configuration - configuring from url: file:/F:/workspace/SpringExample/src/main/resources/hibernate.cfg.xml
[INFO] Configuration XML file loaded: file:/F:/workspace/SpringExample/src/main/resources/hibernate.cfg.xml
18:30:54,475  INFO org.hibernate.cfg.JDBCMetaDataConfiguration - Ignoring null mapping
18:30:54,475  INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null
[INFO] No hibernate properties file loaded.
18:30:54,489  INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
18:30:54,490  INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
18:30:54,490  INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
18:30:54,495  INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:hsql://localhost
18:30:54,495  INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=sa}
18:30:54,685  INFO org.hibernate.cfg.SettingsFactory - RDBMS: HSQL Database Engine, version: 2.0.0
18:30:54,685  INFO org.hibernate.cfg.SettingsFactory - JDBC driver: HSQL Database Engine Driver, version: 2.0.0
18:30:54,716  INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.HSQLDialect
18:30:54,745  INFO org.hibernate.transaction.TransactionFactoryFactory - Using default transaction strategy (direct JDBC transactions)
18:30:54,746  INFO org.hibernate.transaction.TransactionManagerLookupFactory - No TransactionManagerLookup configured (in JTA environment, use of read-write or transactional second-level cache is not recommended)
18:30:54,746  INFO org.hibernate.cfg.SettingsFactory - Automatic flush during beforeCompletion(): disabled
18:30:54,746  INFO org.hibernate.cfg.SettingsFactory - Automatic session close at end of transaction: disabled
18:30:54,746  INFO org.hibernate.cfg.SettingsFactory - JDBC batch size: 15
18:30:54,746  INFO org.hibernate.cfg.SettingsFactory - JDBC batch updates for versioned data: disabled
18:30:54,747  INFO org.hibernate.cfg.SettingsFactory - Scrollable result sets: enabled
18:30:54,747  INFO org.hibernate.cfg.SettingsFactory - JDBC3 getGeneratedKeys(): enabled
18:30:54,747  INFO org.hibernate.cfg.SettingsFactory - Connection release mode: auto
18:30:54,747  INFO org.hibernate.cfg.SettingsFactory - Default batch fetch size: 1
18:30:54,747  INFO org.hibernate.cfg.SettingsFactory - Generate SQL with comments: disabled
18:30:54,747  INFO org.hibernate.cfg.SettingsFactory - Order SQL updates by primary key: disabled
18:30:54,747  INFO org.hibernate.cfg.SettingsFactory - Order SQL inserts for batching: disabled
18:30:54,747  INFO org.hibernate.cfg.SettingsFactory - Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
18:30:54,748  INFO org.hibernate.hql.ast.ASTQueryTranslatorFactory - Using ASTQueryTranslatorFactory
18:30:54,749  INFO org.hibernate.cfg.SettingsFactory - Query language substitutions: {}
18:30:54,749  INFO org.hibernate.cfg.SettingsFactory - JPA-QL strict compliance: disabled
18:30:54,749  INFO org.hibernate.cfg.SettingsFactory - Second-level cache: enabled
18:30:54,749  INFO org.hibernate.cfg.SettingsFactory - Query cache: disabled
18:30:54,749  INFO org.hibernate.cfg.SettingsFactory - Cache region factory : org.hibernate.cache.impl.NoCachingRegionFactory
18:30:54,749  INFO org.hibernate.cfg.SettingsFactory - Optimize cache for minimal puts: disabled
18:30:54,749  INFO org.hibernate.cfg.SettingsFactory - Structured second-level cache entries: disabled
18:30:54,751  INFO org.hibernate.cfg.SettingsFactory - Echoing all SQL to stdout
18:30:54,752  INFO org.hibernate.cfg.SettingsFactory - Statistics: disabled
18:30:54,752  INFO org.hibernate.cfg.SettingsFactory - Deleted entity synthetic identifier rollback: disabled
18:30:54,752  INFO org.hibernate.cfg.SettingsFactory - Default entity-mode: pojo
18:30:54,753  INFO org.hibernate.cfg.SettingsFactory - Named query checking : enabled
18:30:54,765 DEBUG org.hibernate.cfg.reveng.dialect.JDBCMetaDataDialect - getTables(null.null.null)
18:30:54,767  INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:hsqldb:hsql://localhost
18:30:54,773  INFO org.hibernate.dialect.Dialect - Using dialect: org.hibernate.dialect.HSQLDialect
18:30:54,777  INFO org.hibernate.tool.hbm2ddl.SchemaExport - Running hbm2ddl schema export
18:30:54,778  INFO org.hibernate.tool.hbm2ddl.SchemaExport - writing generated schema to file: F:\workspace\SpringExample\target\hibernate3\sql\schema.sql
18:30:54,778  INFO org.hibernate.tool.hbm2ddl.SchemaExport - exporting generated schema to database
18:30:54,779  INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!)
18:30:54,779  INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 20
18:30:54,779  INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false
18:30:54,779  INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: org.hsqldb.jdbcDriver at URL: jdbc:hsqldb:hsql://localhost
18:30:54,779  INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=sa}
18:30:54,883  INFO org.hibernate.tool.hbm2ddl.SchemaExport - schema export complete
18:30:54,885  INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:hsqldb:hsql://localhost
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.675s
[INFO] Finished at: Sat May 07 18:30:54 IST 2011
[INFO] Final Memory: 5M/47M
[INFO] ------------------------------------------------------------------------
18:30:54,988  INFO org.hibernate.connection.DriverManagerConnectionProvider - cleaning up connection pool: jdbc:hsqldb:hsql://localhost

Hibernate configuration

Mon hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration SYSTEM
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">
org.hsqldb.jdbcDriver
</property>
<property name="hibernate.connection.url">
jdbc:hsqldb:hsql://localhost
</property>
<property name="hibernate.connection.username">
sa
</property>
<!-- <property name="hibernate.connection.username">
bceuser123
</property> -->
<property name="hibernate.dialect">
org.hibernate.dialect.HSQLDialect
</property>
<!-- Use the C3P0 connection pool provider -->
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">300</property>
<property name="hibernate.c3p0.max_statements">50</property>
<property name="hibernate.c3p0.idle_test_period">3000</property>
<!-- Show and print nice SQL on stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<!-- List of XML mapping files -->
<mapping resource="hello/Message.hbm.xml"/>
</session-factory>
</hibernate-configuration>
  • juste pour être sûr, vous voulez générer le schéma sur la DB ou pour générer le schéma DDL?
  • Je le voulais pour générer un schéma sur la DB. Et aussi, le fichier de sortie F:\workspace\SpringExample\target\hibernate3\sql\schema.sql est également vide.
InformationsquelleAutor Prabhjot | 2011-05-07