我有一堆用hibernate注释注解的类。我使用Maven,Hibernate和Spring。我如何使用hibernate3-maven-plugin的hbm2ddl生成数据库模式?Maven + Hibernate注释架构生成
5
A
回答
4
很短的例子是这样的:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>jdbcconfiguration</implementation>
</component>
</components>
<componentProperties>
<drop>true</drop>
<configurationfile>/src/main/resources/hibernate.cfg.xml</configurationfile>
</componentProperties>
</configuration>
<dependencies>
<dependency>
<groupId>jdbc.artifact.groupid</groupId>
<artifactId>jdbc-driver</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
当然读documentation,并会都有帮助。
4
让我们假设你的项目有以下结构:
. ├── pom.xml └── src ├── main │ ├── java │ │ └── com │ │ └── stackoverflow │ │ └── Foo.java │ └── resources │ └── META-INF │ └── persistence.xml └── test └── java
那persistence.xml
包含以下内容:
<persistence>
<persistence-unit name="MyPu" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.stackoverflow.Foo</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.connection.driver_class" value="org.h2.Driver"/>
<property name="hibernate.connection.url" value="jdbc:h2:mem:Q4029456-1.0-SNAPSHOT"/>
<property name="hibernate.connection.user" value="APP"/>
<property name="hibernate.connection.password" value="APP"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
</properties>
</persistence-unit>
</persistence>
然后下面的配置模式输出作为构建的一部分:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow</groupId>
<artifactId>Q4029456</artifactId>
<version>1.0-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.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.2.144</version>
</dependency>
...
</dependencies>
<repositories>
<repository>
<id>repository.jboss.org-public</id>
<name>JBoss repository</name>
<url>https://repository.jboss.org/nexus/content/groups/public</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>jpaconfiguration</implementation>
</component>
</components>
<componentProperties>
<drop>true</drop>
<!-- optional, but useful for later inspection -->
<outputfilename>schema.ddl</outputfilename>
<persistenceunit>MyPu</persistenceunit>
</componentProperties>
</configuration>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>hbm2ddl</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.2.144</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
替换jpaconfiguration
和persitence.xml
由annotationconfiguration
和src/main/resources/hibernate.cfg.xml
如果您不使用JPA。
下面所获得的输出的提取物:
$ mvn process-classes [INFO] Scanning for projects... ... [INFO] --- hibernate3-maven-plugin:2.2:hbm2ddl (default) @ Q4029456 --- ... drop table Foo if exists; create table Foo (id bigint generated by default as identity, name varchar(255), primary key (id)); ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ ...
相关问题
- 1. Maven生成源/注释
- 2. 如何生成Hibernate字段注释?
- 3. GWT Maven使用位置注释生成
- 4. AndroMDA maven代码生成和JPA注释
- 5. Gradle/Hibernate/Maven注释外键创建
- 6. Hibernate注释。如何注释?
- 7. 从JPA注释生成DDL
- 8. 与Hibernate生成工具避免产生标题注释
- 9. Grails Hibernate注释
- 10. Hibernate sql注释
- 11. hibernate3 maven插件:make hbm2java生成休眠注释而不是ejb3注释
- 12. 使用带Hibernate注释POJO的节俭生成模型
- 13. 运行没有“目录”属性的hibernate工具注释生成
- 14. liquibase和hibernate注释
- 15. Hibernate复合注释
- 16. Hibernate中注释类
- 17. Hibernate关系注释
- 18. 框架goto定义显示注释,这些是从xml注释生成的吗?
- 19. 自动生成注释
- 20. 在Java中生成注释
- 21. NHibernate架构生成
- 22. MAVEN构建不生成jar
- 23. 基于POJO生成EJB3注释的bean
- 24. 添加@Generated注释JAXB生成的类
- 25. Hibernate/JPA DB架构生成最佳实践
- 26. 带架构注释的Doctrine ORM表
- 27. JAXB XmlID和XmlIDREF注释(架构到Java)
- 28. JPA2.1/Hibernate 5.2使用Hibernate Tools通过ANT生成ddl Maven任务
- 29. hibernate批注如何生成主键?
- 30. hibernate-tools maven依赖项导致超时扫描注释
jdbcconfiguration不会与注释工作。 – 2010-10-27 07:53:19
当然不是。对不起......只需将它替换为:annotationconfiguration – khmarbaise 2010-10-27 08:11:45