我最近在沙箱平台上创建了一个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中进行了一些挖掘,以下几行引起了我的注意:
使用USERNAME定义的用户必须具有创建新数据库的权限。数据库将具有使用DATABASE定义的名称。接受“真实”或“虚假”。
有什么办法可以在Hibernate OGM中覆盖它吗?或者有人使用其他提供商没有这个限制? (试图设置eclipselink没有运气)
P.S。:我知道我可以使用创建MongoClient的MongoDB java驱动程序连接到mongolab,就在那里。我想坚持JPA设置。