Я пишу приложение javaEE, используя спящий режим. Приложение будет работать в нескольких средах (dev, qa, prod и т. Д.). & будет иметь отдельные dbs, связанные с каждым из них. Я хотел бы установить свойства hibernate, такие как jdbc-url, имя пользователя, пароль и т. Д. Отдельно для каждой из этих сред.Hibernate JTA: проверьте параметры подключения DB для среды
Мой текущий persistence.xml
выглядит следующим образом:
<persistence-unit name="PU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<validation-mode>CALLBACK</validation-mode>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" />
<property name="hibernate.hbm2ddl.auto" value="validate" />
<property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
<property name="hibernate.event.merge.entity_copy_observer" value="allow"/>
<property name="hibernate.connection.driver_class" value="oracle.jdbc.OracleDriver"/>
<property name="hibernate.connection.url" value="jdbc:oracle:thin:@host/schema"/>
<property name="hibernate.connection.username" value="abc"/>
<property name="hibernate.connection.password" value="***"/>
</properties>
</persistence-unit>
Я использую единицы сохранения следующим образом в моем Java код:
@PersistenceContext(unitName = "PU")
private EntityManager em;
Есть ли способ, что я могу придать свойства Hibernate, которые хранятся в отдельных файлах свойств, в EntityManager для разных сред?
Обратите внимание, что я использую JTA и, следовательно, не могу использовать EntityManagerFactory. Также я не & не хочу использовать весну.
, когда вы имеете в виду различные сред, вы не делаете включать сервер приложений? поскольку свойства datasource/db будут совместно использоваться сервером приложений, поэтому производственный сервер будет иметь свойства производственной базы данных, а сервер разработки будет иметь свойства разработки. – AntJavaDev
Да. Приложение также будет иметь разные виртуальные машины в разных средах. –
, тогда вы должны сделать hibernate conf опираться на источник данных сервера conf, f.e. если у вас есть сервер tomcat, вы должны определить 3 разных контекста базы данных. – AntJavaDev