MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

findAll schlägt fehl, nachdem Play Morphia neu initialisiert wurde

Hat das abhängige Modul eine andere alternative Deklaration der Page- oder Model-Klassen?

Oben im Stack-Trace ("com.google.code.morphia.mapping.MappingException:Error setting value from converter (LongConverter) for models.Page.navigationId to 20000") sieht es so aus, als ob zwischen dem Typ ein Konflikt besteht ein numerischer Wert wird gespeichert und abgerufen. Beispielsweise ist es in Java nicht ungewöhnlich, etwas als Double zu speichern und dann fälschlicherweise zu versuchen, es als Integer oder Long abzurufen. Können Sie also überprüfen, ob die Deklaration von navigationId im abhängigen Modul mit der hier gezeigten identisch ist? Sie sollten die Definition teilen, aber es ist möglich, dass es eine Alternative gibt.

Eine andere zu überprüfende Sache ist, dass Ihr Code ein Long in yourDBObject und kein Float einfügt. Wenn Sie es beispielsweise über die Shell einfügen, müssen Sie einen der Wrapper verwenden, z. B.

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

Andernfalls führt dies auch zu einer Nichtübereinstimmung, wenn Sie es abrufen. Standardmäßig sind Zahlen in JavaScript doppelt.