Использование файла Persistence.xml без контейнера [пакет] - PullRequest
2 голосов
/ 09 января 2012

Я пытаюсь использовать фреймворк jpa / hibernate с простым консольным приложением java без контейнера. Согласно документации jpa файл persistence.xml следует поместить в папку META-INF в папке src.

Проблема возникла при попытке упаковать приложение в простой файл jar, тогда файл persitence.xml будет находиться в созданном файле jar (поскольку он должен быть помещен в папку src).

В этой ситуации файл persistence.xml не легко доступен для изменения конфигурации приложения, такой как URL БД, время ожидания, журналы гибернации ...

Я попытался поместить META-INF/persistence.xml вне папки src и добавил его в CLASSPATH, но ошибка, указывающая, что Could not find any META-INF/persistence.xml file in the classpath всегда выбрасывается.

Есть ли способ сохранить редактируемый и доступным persistence.xml после того, как приложение будет упаковано и развернуто в рабочей среде, как и любой другой классический файл конфигурации (например, .properties файлы).

Спасибо

1 Ответ

0 голосов
/ 09 января 2012

Я думаю, вам не нужно делать persistence.xml редактируемым, так как вы можете предоставить дополнительные свойства при вызове Persistence.createEntityManagerFactory() (или с использованием аналогичных механизмов, специфичных для Hibernate).

Таким образом, вы можете использовать persistence.xml только для статической конфигурации и настраивать динамические свойства, используя собственный механизм конфигурации.

...