Hibernate OGM:无法启动MongoDB数据库

时间:2016-10-02 20:30:33

标签: java mongodb hibernate jpa hibernate-ogm

所以我对MongoDB和Hibernate都很陌生,我正在尝试运行测试来连接和添加文档到MongoDB数据库。代码在另一台机器上运行,所以它应该工作,但我假设我可能有一个MongoDB错误。尝试构建EntitiyManagerFactory时错误开始。我明白了:

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,但这似乎没有什么区别。我可以通过命令行连接。这是启动时的截图。

enter image description here

作为一个说明,我不确定其他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的大多数资源似乎都假设你可以连接。

1 个答案:

答案 0 :(得分:1)

尝试添加

<property name="hibernate.ogm.datastore.create_database" value="true" />

到persistence.xml中的属性部分