2010-03-03 2 views
2

У меня параметризованный persistence.xml. Я пытаюсь создать схему ddl с помощью hbm2ddl. Как я могу передать параметры этому инструменту?Передача параметра в hbm2ddl

Мой persistence.xml выглядит

<property name="hibernate.connection.driver_class" value="${persistence.connection.driver.class}"/> 
<property name="hibernate.dialect" value="${persistence.dialect}"/> 
<property name="hibernate.connection.password" value="${persistence.password}"/> 
<property name="hibernate.connection.username" value="${persistence.username}"/> 

Когда я начала значения параметров сервера передаются как JAVA_OPTS (с использованием -Dpersistence.dialect = значение). И это работает хорошо.

Как это сделать с помощью hbm2ddl?

Я попытался собственности

<hibernatetool destdir="${gensrc.sql.dir}"> 
    <property key="persistence.dialect" value="org.hibernate.dialect.Oracle9Dialect"/> 
    <jpaconfiguration persistenceunit="${persistence.unit.name}" /> 
    <classpath> 
    <!-- it is in this classpath you put your classes dir, 
     and/or jpa persistence compliant jar --> 
    <path location="${build.classes.dir}" /> 
    </classpath> 
    <hbm2ddl export="false" drop="true" outputfilename="create_${ant.project.name}.sql" format="true" haltonerror="true" /> 
</hibernatetool> 

Но он не получает это значение. Это показывает мне ошибку.

build.xml:160: org.hibernate.HibernateException: Dialect class not found: ${persistence.dialect} 

ответ

3

Вы можете указать диалект через propertyfile. Объявить его в hibernate.properties:

hibernate.dialect=org.hibernate.dialect.Oracle9Dialect 

И использовать его как это:

<jpaconfiguration propertyfile="hibernate.properties"/> 
+0

Спасибо Pascal. Я имел в виду https://www.hibernate.org/hib_docs/tools/reference/en/html/ant.html Как я могу это сделать с помощью ant? Я имею в виду, можете ли вы указать мне, где я должен указывать эти свойства в моем на Спасибо. –

+0

@Jigar Извините, неверная ссылка. Я обновил свой андерсер с другими предложениями. –

+0

Еще раз спасибо. Это сработало. (первый). (jpaconfiguration не поддерживает атрибут prop.) Небольшие проблемы все еще остаются. Целью настройки persistence.xml было изменение этого значения во время выполнения. Поэтому, если вы хотите генерировать ddl для oracle, я могу просто указать параметр с диалектом, и он генерирует ddl. Здесь я должен указать файл с hibernate.dialect = oracle.driver. Я сделал это на данный момент, и он работает. Спасибо за ваш ответ. –

Смежные вопросы