0

我最近在沙盒平台上创建了一个 mongolab 帐户(因此没有管理员权限)。我有一个简单的测试用例应用程序将 Hibernate OGM + JPA 2.1 与我的 mongo 数据库集成。当我尝试运行我的应用程序时,我收到以下错误(重要部分):

Caused by: com.mongodb.CommandFailureException: { "serverUsed" : "ds062797.mongolab.com:62797" , "ok" : 0.0 , "errmsg" : "not authorized on admin to execute command { listDatabases: 1 }" , "code" : 13}
at com.mongodb.CommandResult.getException(CommandResult.java:76)
at com.mongodb.CommandResult.throwOnError(CommandResult.java:131)
at com.mongodb.Mongo.getDatabaseNames(Mongo.java:397)
at org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider.extractDatabase(MongoDBDatastoreProvider.java:152)
... 34 more

我在这里对 Hibernate ORM 的文档进行了一些挖掘,以下几行引起了我的注意:

使用 USERNAME 定义的用户必须具有创建新数据库的权限。数据库将具有使用 DATABASE 定义的名称。接受“真”或“假”。

有什么办法可以在 Hibernate OGM 中覆盖它?或者,也许有人使用了另一个没有此限制的提供商?(试图设置 eclipselink 没有运气)

PS:我知道我可以使用创建 MongoClient 的 MongoDB java 驱动程序连接到 mongolab,已经完成了。我想坚持 JPA 设置。

4

1 回答 1

1

似乎您遇到了最近才修复的 OGM-733 。它应该适用于 Hibernate OGM 4.1.2.Final。

于 2015-03-02T07:40:17.533 回答