Недавно я создал учетную запись mongolab на платформе песочницы (так что никаких админ-привилегий). У меня есть простая тестовая программа для интеграции Hibernate OGM + JPA 2.1 с моей базой mongo. Когда я пытаюсь запустить мое приложение я получаю следующую ошибку (singnificant часть):Ограничить ограничение типа пользователя Hibernate OGM?
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, должен иметь привилегии для создания новой базы данных. База данных будет иметь имя, определенное с помощью базы данных. Принимает «true» или «false».
Есть ли способ, которым я могу переопределить это в Hibernate OGM? Или, может быть, кто-то использовал другого провайдера, у которого нет этого ограничения? (попытался настроить eclipselink без везения)
P.S .: Я знаю, что я могу подключиться к mongolab с помощью java-драйвера MongoDB, создающего MongoClient, и это было сделано. Я хочу придерживаться настройки JPA.
Вы пробовали DataNucleus JPA с mongodb? Не знаю, применимо ли это «ограничение», потому что не может сказать, что я понимаю, что он говорит –