Файл динамического отображения гибернации - PullRequest
0 голосов
/ 08 августа 2010

Вот пример моего файла сопоставления:

<!-- ============================ -->
<!-- Table TABLE1 -->
<!-- ============================ -->
<class table="TABLE1"
    name="com.myCompany.Entity1" lazy="false" schema="SCHEMA1">
    <!-- Attributs -->
    <id column="ID" name="id" type="string" />
    <property column="ACTION_TYPE" name="actionType"
        type="com.myCompany.ActionEnumType" not-null="true" />
    <property column="PRIORITY" name="priority"
        type="com.myCompany.PriorityEnumType" not-null="true" />
    <property column="DATE_MAJ" name="dateMaj" />
</class>
<!-- ============================ -->
<!-- Table TABLE2 -->
<!-- ============================ -->
<class table="TABLE2"
    name="com.myCompany.Entity2"
    lazy="false"  schema="SCHEMA2">
    <!-- Attributs -->
    <id column="ID" name="id" type="string" />
    <property column="ACTION_TYPE" name="actionType"
        type="com.myCompany.ActionEnumType" not-null="true" />
    <property column="PRIORITY" name="priority"
        type="com.myCompany.PriorityEnumType" not-null="true" />
    <property column="DATE_MAJ" name="dateMaj" />
</class>
<!-- ============================ -->
<!-- Table TABLE3 -->
<!-- ============================ -->
<class table="TABLE3"
    name="com.myCompany.Entity3"
    lazy="false"  schema="SCHEMA3">
    <!-- Attributs -->
    <id column="ID" name="id" type="string" />
    <property column="ACTION_TYPE" name="actionType"
        type="com.myCompany.ActionEnumType" not-null="true" />
    <property column="PRIORITY" name="priority"
        type="com.myCompany.PriorityEnumType" not-null="true" />
    <property column="DATE_MAJ" name="dateMaj" />
</class>

Цель состоит в том, чтобы поместить все данные для настройки в один внешний файл. Цель состоит в том, чтобы определить имя схемы динамически, поскольку оно зависит от среды развертывания. К сожалению, мы не можем использовать в нашем проекте ни Maven, ни Ant. Как или где я могу установить разные имена схем для решения этой проблемы?

Спасибо заранее за помощь.

Ответы [ 3 ]

0 голосов
/ 08 августа 2010

В Hibernate нет поддержки этого.Однако мы используем Ant для достижения этого с помощью специфических для среды файлов свойств.

0 голосов
/ 08 августа 2010

Hibernate поддерживает определение каталога по умолчанию для неквалифицированных имен таблиц в файлах конфигурации (либо в hibernate.cfg.xml, либо в hibernate.properties), используя свойство hibernate.default_schema.Из документации:

3.4.Дополнительные свойства конфигурации

...

hibernate.default_schema: квалифицировать неквалифицированные имена таблиц с заданной схемой / табличным пространством в сгенерированном SQL. например, SCHEMA_NAME

В зависимости от сложности вашего варианта использования это может помочь (или нет).Если этого не произойдет, я боюсь, что вам придется использовать какой-то подход фильтрации (Ant также предлагает фильтрацию) - или для исправления Hibernate.

0 голосов
/ 08 августа 2010

Нет, такая вещь не поддерживается, поэтому лучше использовать инструмент, такой как Maven или Ant, для динамической установки этого значения на основе файла свойств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...