休止状態の注釈で注釈が付けられたクラスがたくさんあります。Maven、Hibernate、Spring を使用しています。hibernate3-maven-plugin の hbm2ddl を使用して DB スキーマを生成するにはどうすればよいですか?
6226 次
2 に答える
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>
そしてもちろん、ドキュメントを読むことは助けになったでしょう。
于 2010-10-27T06:51:50.267 に答える
4
プロジェクトの構造が次のようになっているとします。
. ├── pom.xml └── src ├──メイン │ ├──ジャワ │ │ └──com │ │ └── スタックオーバーフロー │ │ └── Foo.java │ └── 資料 │ └── メタINF │ └──persistence.xml └──テスト └──ジャワ
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>
JPA を使用していない場合は、jpaconfiguration
と を と にpersitence.xml
置き換えannotationconfiguration
ます。src/main/resources/hibernate.cfg.xml
得られた出力の抜粋の下:
$ mvn プロセスクラス [情報] プロジェクトをスキャンしています... ... [INFO] --- hibernate3-maven-plugin:2.2:hbm2ddl (デフォルト) @ Q4029456 --- ... テーブル Foo が存在する場合はドロップします。 テーブル Foo を作成します (id bigint はデフォルトで ID として生成され、名前は varchar(255)、主キー (id)); ... [情報] - - - - - - - - - - - - - - - - - - - - - - - - ------------------------- [情報] ビルド成功 [情報] - - - - - - - - - - - - - - - - - - - - - - - - ------------------------- ...
于 2010-10-27T07:52:53.333 に答える