如何定义 - 使用 JpaApi 在游戏框架中特定于环境的 mongo db 配置?



我正在做一个项目,我正在使用游戏框架和mongo db。到目前为止,我已经在持久性.xml文件中硬编码了本地数据库连接的值,并将jpa.default值作为持久性UnitName,并且我正在使用该剧的JpaApi进行数据库操作(它固有地使用实体管理器(。

我无法确定如何在 application.conf 或任何其他文件中定义环境(生产、开发、阶段(特定的数据库属性,如主机、url 等。

application.conf entry -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>

会有不同的解决方案。这取决于您的环境。

如果您使用的是 WildFly/JEE 容器,则可以配置 WildFly NoSQL 子系统,并在其中提供对远程数据存储的引用。它相当于 SQL 数据源,但适用于 NoSQL 数据存储。参见使用 WildFly NoSQL

如果您使用的是 Web 容器,则会有不同的策略。 您可以创建不同的战争,每个环境一个,例如使用 maven 配置文件。 或者,您可以配置 Spring 上下文以使用外部属性文件。看到这个问题。

如果将其部署在 PASS(如 OpenShift(中,则可以将持久性.xml文件挂载为配置映射。请参阅配置图 - OpenShift 文档

最新更新