Различные источники (например, Oracle ) говорят, что вы должны указать детали соединения jdbc в своем файле persistence.xml для приложений Java SE, которые используют JPA через такие вещи, как <property name="javax.persistence.jdbc.url" value="..."/>
.
ЭтоЭто настоящая боль, когда вы хотите запустить приложение на разных базах данных, например на локальных, тестовых и производственных.В настоящее время я справляюсь с этим, имея несколько постоянных модулей, которые фактически одинаковы, но с разными деталями подключения, а затем заставляю приложение выбирать правильный постоянный модуль в зависимости от среды, в которой оно выполняется.
Проблемы с этим:
- Дублирование конфигурации.Когда я добавляю класс Entity, я должен добавить
<class>MyClass</class>
к каждой единице постоянства.Я бы предпочел просто указать его один раз. - Конфигурация подключения к базе данных, прилагаемая к приложению.Если я хочу изменить базу данных, используемую в среде, мне нужно поиграть с persistence.xml и пересобрать приложение.Я бы предпочел иметь конфигурационный файл в каждой из моих сред, в котором указаны учетные данные базы данных.Таким образом, у меня может быть много сред, но определен только один постоянный модуль, и я могу изменить учетные данные базы данных для данной среды, просто отредактировав один файл в этой среде и затем перезапустив приложение.
Вам известен лучший способ настроить постоянство?Есть ли способ заставить <jta-data-source>
или <non-jta-data-source>
сделать что-то подходящее в среде Java SE?