2014-01-07 4 views
2

У меня есть несколько небольших проектов java, которые имеют доступ к одной и той же БД. Возможно ли иметь один файл persistence.xml, который находится где-то в файловой системе (не входит в какие-либо банки, войны, уши и т. Д.), И он все еще виден проектам? Причина в том, что существует требование, чтобы persistence.xml был легко заменяемым и настраиваемым, и конфигурация должна выполняться в одном месте для всех проектов.Совместное JPA persistence.xml среди нескольких проектов

+0

Почему вы не извлекаете функциональность персистентности в отдельный проект, от которого зависят все остальные? –

+0

Каждый из проектов использует БД определенным образом, и нам не имеет смысла иметь функциональность персистентности отдельно от проектов. Даже если бы существовал отдельный проект с постоянством функциональности, это не решило бы проблему иметь persistence.xml за пределами zip, jar, war и т. Д. –

ответ

0

Похоже, вопрос несколько похожее на это: Package a runnable JPA jar putting persistence.xml outside

Ответ, кажется, нет. Однако, если вы использовали Spring для загрузки диспетчера персистентности, вы можете связать источник данных, не зависящий от persistence.xml, и загрузить свойства из централизованного файла .properties. Посмотрите на этот ответ для получения дополнительных идей: loading .properties in spring-context.xml and persistence.xml

+0

Ну, похоже, что нет никакого способа сделать это без хаков. Интересно, что JPA этого не допускает. Для производства это действительно раздражает проблема. Во всяком случае, спасибо за ответ. –