我最近在沙盒平台上创建了一个 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 的文档中做了一些挖掘 here以下几行引起了我的注意:
The user defined with USERNAME must have the privileges for the creation of a new database. The database will have the name defined with DATABASE. Accepts "true" or "false".
有什么方法可以在 Hibernate OGM 中覆盖它吗?或者也许有人使用了没有此限制的其他提供商? (尝试设置 eclipselink 但没有成功)
P.S.:我知道我可以使用 MongoDB java 驱动程序创建 MongoClient 连接到 mongolab,已经这样做了。我想坚持使用 JPA 设置。
最佳答案
看来您遇到了 OGM-733最近刚刚修复。它应该与 Hibernate OGM 4.1.2.Final 一起使用。
关于java - 覆盖 Hibernate OGM 用户类型限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794094/