所以我对 MongoDB 和 Hibernate 还是很陌生,我正在尝试运行测试以连接并将文档添加到 MongoDB 数据库。该代码在另一台机器上运行,所以它应该可以工作,但我假设我可能对 MongoDB 有错误。尝试构建 EntityManagerFactory 时开始出现错误。我得到:
Unable to Build entity manger factory
Caused by: Unable to start datastore provider
Caused by: OGM001219: Database testDB does not exist. Either create it yourself or set property 'hibernate.ogm.datastore.create_database' to true.
我确实首先运行了 mongo,它开始在 localhost:27017 上监听。我尝试将数据库名称更改为 testDB,但这似乎没有什么不同。我可以通过命令行连接。这是启动时的屏幕截图。
作为说明,我不确定其他 3 个连接是否正常。
我的持久性文件看起来像。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" 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_2_0.xsd">
<persistence-unit name="jpa-mongodb" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ogm.jpa.HibernateOgmPersistence</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="hibernate.ogm.datastore.provider" value="mongodb"/>
<property name="hibernate.ogm.datastore.database" value="testDB"/>
<property name="hibernate.ogm.datastore.host" value="localhost"/>
<property name="hibernate.ogm.datastore.username" value="" />
<property name="hibernate.ogm.datastore.password" value="" />
</properties>
很抱歉这篇长文,但我对这个相对论很陌生,而且大多数关于 Hibernate 的资源似乎都假设你可以连接。