MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

findAll échoue après la réinitialisation de play morphia

Le module dépendant a-t-il une autre déclaration alternative des classes Page ou Model ?

Du haut de la trace de la pile, ("com.google.code.morphia.mapping.MappingException :Erreur lors de la définition de la valeur du convertisseur (LongConverter) pour les modèles.Page.navigationId à 20000"), il semble qu'il y ait une incompatibilité de type entre la manière une valeur numérique est stockée et récupérée. Par exemple, en Java, il n'est pas rare de stocker quelque chose en tant que Double, puis d'essayer par erreur de le récupérer en tant qu'entier ou long. Alors, pouvez-vous vérifier que la déclaration de navigationId dans le module dépendant est la même que celle que vous avez montrée ici ? Ils devraient partager la définition, mais il est possible qu'il y ait une alternative.

Une autre chose à vérifier est que votre code met un Long dans yourDBObject et non un float. Par exemple, si vous l'insérez via le shell, vous devrez utiliser l'un des wrappers, par exemple

db.Page.save({_id:NumberLong(20000)});

Sinon, cela entraînera également une incompatibilité lorsque vous le récupérerez ; par défaut, les nombres en JavaScript sont des doubles.