如何使用hibernate4-maven-plugin生成多个方言模式?

时间:2015-02-19 20:10:49

标签: java sql hibernate maven maven-plugin

我想使用hibernate4-maven-plugin在SQL中生成数据库模式。

但我有一个条件:我想在时间生成3个模式:

  • 一个为Postgres,
  • 一个用于Oracle和
  • 另一个用于SQL Server。

这是我的配置:

<plugin>
    <groupId>de.juplo</groupId>
    <artifactId>hibernate4-maven-plugin</artifactId>
    <version>1.0.3</version>
    <executions>
        <execution>
            <goals>
                <goal>export</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <hibernateDialect>org.hibernate.dialect.PostgreSQLDialect</hibernateDialect>

        <!-- I want generate the schemas for these dialects too, at same time... -->
        <!-- <hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>-->
        <!-- <hibernateDialect>org.hibernate.dialect.SQLServerDialect</hibernateDialect>-->

        <target>SCRIPT</target>
    </configuration>
</plugin>

我查看官方文档(上面的链接),但如果可能或不可能,则不清楚。

有一种方法可以用hibernate4-maven-plugin做到这一点?

谢谢!

1 个答案:

答案 0 :(得分:5)

您可以从插件中创建3个执行,每个执行使用特定的方言

<plugin>
<groupId>de.juplo</groupId>
<artifactId>hibernate4-maven-plugin</artifactId>
<version>1.0.3</version>
<executions>
    <!-- postgres -->
    <execution>
        <id>postgres</id>
        <goals>
            <goal>export</goal>
        </goals>
        <configuration>
            <hibernateDialect>org.hibernate.dialect.PostgreSQLDialect</hibernateDialect>
            <target>SCRIPT</target>
            <outputFile>${project.build.directory}/postgres-schema.sql.</outputFile>
        </configuration>
    </execution>
    <!-- oracle -->
    <execution>
        <id>oracle</id>
        <goals>
            <goal>export</goal>
        </goals>
        <configuration>
            <hibernateDialect>org.hibernate.dialect.Oracle10gDialect</hibernateDialect>
            <target>SCRIPT</target>
            <outputFile>${project.build.directory}/oracle-schema.sql.</outputFile>
        </configuration>
    </execution>
    <!-- sql-server -->
    <execution>
        <id>sql-server</id>
        <goals>
            <goal>export</goal>
        </goals>
        <configuration>
            <hibernateDialect>org.hibernate.dialect.SQLServerDialect</hibernateDialect>
            <target>SCRIPT</target>
            <outputFile>${project.build.directory}/sqlserver-schema.sql.</outputFile>
        </configuration>
    </execution>
</executions>