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