Генерация DDL с Hibernate 4 без подключения - PullRequest
0 голосов
/ 04 июля 2018

Я использовал для генерации DDL с помощью hibernate3-maven-plugin с Hibernate 3. Поскольку я перешел на Hibernate 4 , я больше не могу использовать этот плагин.

Я не могу найти способ создать DDL из сопоставления, не подключившись к реальной базе данных PostgreSQL .

Я пробовал много вещей (включая hibernate4-maven-plugin из de.juplo и this ), но я чувствую, что каждый метод требует подключения к БД.

Есть ли (хороший) способ создания DDL в Hibernate 4 без подключения?

1 Ответ

0 голосов
/ 04 июля 2018

Я могу создать свой сценарий DDL следующим образом:

<plugin>
                <groupId>de.juplo</groupId>
                <artifactId>hibernate4-maven-plugin</artifactId>
                <version>1.1.1</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>

Мне не нужно никакого соединения, я просто указываю диалект SQL. Использование mvn clean package Maven помещает скрипт в целевую папку.

Это мой persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1"
   xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
        http://xmlns.jcp.org/xml/ns/persistence
        http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
   <persistence-unit name="primary">
      <jta-data-source>java:jboss/datasources/library.backendDS</jta-data-source>
      <properties>
         <!-- Properties for Hibernate -->
         <property name="hibernate.hbm2ddl.auto" value="validate" />
         <property name="hibernate.show_sql" value="false" />
      </properties>
   </persistence-unit>
</persistence>
...