最近、サンドボックス プラットフォームで 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のセットアップに固執したい。