Как определить - настройка среды конфигурации mongo db в игровой инфраструктуре с помощью JpaApi?

Я работаю над проектом, в котором я использую платформу для игр вместе с mongo db. На данный момент я жестко закодировал значение для локального соединения db в файле persistence.xml и дал значение jpa.default как persistenceUnitName, и я использую JpaApi для воспроизведения для операций db (который по сути использует диспетчер сущностей).

Я не могу определить, как определить специфические свойства db среды (prod, dev, stage), такие как host, url и т. Д. В application.conf или любом другом файле.

entry.conf - jpa.default = my-local-jpa

<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="my-local-jpa" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider> <non-jta-data-source>DefaultDS</non-jta-data-source> <properties> <property name="hibernate.ogm.datastore.provider" value="org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider"/> <property name="hibernate.ogm.datastore.host" value="127.0.0.1"/> <property name="hibernate.ogm.datastore.port" value="27017"/> <property name="hibernate.ogm.datastore.database" value="my_db"/> <property name="hibernate.ogm.datastore.safe" value="true"/> <property name="hibernate.ogm.datastore.create_database" value="true" /> </properties> </persistence-unit> </persistence> 

Всего 1 ответ


Будут разные решения. Это зависит от вашей среды.

Если вы используете контейнер WildFly / JEE, вы можете настроить подсистему WildFly NoSQL, указав там ссылки на удаленное хранилище данных. Это будет эквивалент SQL-источника данных, но для хранилища данных NoSQL. См. Использование WildFly NoSQL

Если вы используете веб-контейнер, будут разные стратегии. Вы можете создавать разные войны (ы), по одному для каждой среды, например, используя профили maven. Кроме того, вы можете настроить свой контекст Spring, чтобы использовать внешний файл свойств. См. Этот вопрос .

Если вы развертываете его в PASS, например OpenShift, вы можете смонтировать файл persistence.xml в виде карты конфигурации. См. Config Map - OpenShift doc


Есть идеи?

10000