Как использовать один и тот же источник данных соединения на Tomcat и Glassfish? - PullRequest
0 голосов
/ 20 марта 2012

Мне нравится тестировать свое веб-приложение с Hibernate на локальной установке Tomcat и позднее развертывать его на сервере Glassfish.

Источник данных подключения для Tomcat выглядит следующим образом:

<property name="connection.datasource">java:comp/env/jdbc/mydb</property>

Путь стеклянной рыбы:

<property name="connection.datasource">jdbc/mydb</property>

Можно ли объединить эти две настройки, чтобы я мог использовать только один файл hibernate.cfg.xml для своей среды выполнения?

Ответы [ 2 ]

0 голосов
/ 21 марта 2012

С копированием и вставкой это не проблема с использованием двух файлов конфигурации hibernate.

Если вы абсолютно хотите иметь только один файл, вы создаете файл hibernate.cfg.xml со всем тем же, что и вобе среды, и вы включаете второй файл, который содержит только строку подключения.

Например, как это в hibernate.cfg.xml:

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
      "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
      "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" [
   <!ENTITY database_connection SYSTEM "databaseConnection.xml">
  ]>

<hibernate-configuration>

  <session-factory>

&database_connection;

    <property name="show_sql">true</property>

    <mapping resource="..."/>
    ...
    <mapping resource="..."/>
  </session-factory>
</hibernate-configuration>

Затем вам нужен второй файл databaseConnection.xmlкоторый содержит информацию о подключении и который включается автоматически при чтении конфигурации.Этот файл у вас в двух версиях, один для Tomcat, один для Glassfish.Если вы изменяете свои сопоставления, вам нужно сделать это только в одном файле, но вы должны обратить внимание на второй файл при доставке вашего программного обеспечения.

Лично я думаю, что версия с двумя hibernate.cfg.XML-файлы проще и гибче.

(Кстати, файлы включают функцию xml, не функцию гибернации.)

0 голосов
/ 20 марта 2012

Лучше всего использовать два (или более) файла конфигурации hibernate.cfg.xml, по одному для каждой среды и / или базы данных.

Большая часть файла конфигурации может быть одинаковой для обоих файлов (особенно ссылки на файлы сопоставления). Отличаются только некоторые части, такие как строка подключения, пользователь / пароль или драйвер базы данных (при необходимости).

Затем вы указываете путь и имя файла конфигурации в качестве параметра запуска для своего приложения и используете его в Configuration.configure(<filename>).

Преимущества:
- нет проблем с разными строками подключения
- нет проблем с разными паролями для тестирования и производства
- возможность использовать разные базы данных (например, Oracle и MySQL).
- если таблица изменяется только в одной среде, вы можете легко ссылаться на другой файл сопоставления
=> и все это с одним и тем же кодом Java для обеих сред.

...