J'ai récemment créé un compte mongolab sur une plate-forme sandbox (donc pas de privilège d'administrateur). J'ai une application de test simple pour intégrer Hibernate OGM + JPA 2.1 avec ma base de données mongo. Quand je tente de lancer mon application je reçois l'erreur suivante (partie singnificant):Remplacer la restriction de type d'utilisateur 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
Je l'ai fait quelques recherches dans la documentation Hibernate ORM here et les lignes suivantes a attiré mon attention:
L'utilisateur défini avec USERNAME doit avoir les privilèges pour la création d'une nouvelle base de données. La base de données aura le nom défini avec DATABASE. Accepte "vrai" ou "faux".
Est-il possible de surcharger cela dans Hibernate OGM? Ou peut-être quelqu'un a utilisé un autre fournisseur qui n'a pas cette limitation? (essayé d'installer eclipselink sans chance)
P.S .: Je suis conscient que je peux me connecter à mongolab avec le pilote MongoDB java créant un MongoClient, été fait cela. Je veux m'en tenir à une configuration JPA.
Avez-vous essayé DataNucleus JPA avec mongodb? Aucune idée sur si cette "restriction" s'applique ne peut pas dire que je comprends ce qu'il dit –