Как определить - среда, определяющая конфигурацию dong Монго в игровой среде с JpaApi? - PullRequest
0 голосов
/ 14 октября 2018

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

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

applicationЗапись .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 Ответ

0 голосов
/ 15 октября 2018

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...