У меня есть несколько небольших проектов java, которые имеют доступ к одной и той же БД. Возможно ли иметь один файл persistence.xml, который находится где-то в файловой системе (не входит в какие-либо банки, войны, уши и т. Д.), И он все еще виден проектам? Причина в том, что существует требование, чтобы persistence.xml был легко заменяемым и настраиваемым, и конфигурация должна выполняться в одном месте для всех проектов.Совместное JPA persistence.xml среди нескольких проектов
ответ
Похоже, вопрос несколько похожее на это: Package a runnable JPA jar putting persistence.xml outside
Ответ, кажется, нет. Однако, если вы использовали Spring для загрузки диспетчера персистентности, вы можете связать источник данных, не зависящий от persistence.xml, и загрузить свойства из централизованного файла .properties. Посмотрите на этот ответ для получения дополнительных идей: loading .properties in spring-context.xml and persistence.xml
Ну, похоже, что нет никакого способа сделать это без хаков. Интересно, что JPA этого не допускает. Для производства это действительно раздражает проблема. Во всяком случае, спасибо за ответ. –
Почему вы не извлекаете функциональность персистентности в отдельный проект, от которого зависят все остальные? –
Каждый из проектов использует БД определенным образом, и нам не имеет смысла иметь функциональность персистентности отдельно от проектов. Даже если бы существовал отдельный проект с постоянством функциональности, это не решило бы проблему иметь persistence.xml за пределами zip, jar, war и т. Д. –