sql >> Database >  >> NoSQL >> MongoDB

findAll mislukt nadat de spelmorfia opnieuw is geïnitialiseerd

Heeft de afhankelijke module een andere alternatieve declaratie van de Page ofModel-klassen?

Vanaf de bovenkant van de stacktracering ("com.google.code.morphia.mapping.MappingException:Error setting value from converter (LongConverter) for models.Page.navigationId to 20000"), lijkt het erop dat er een typemismatch is tussen de manier waarop een numerieke waarde wordt opgeslagen en opgehaald. In Java is het bijvoorbeeld niet ongewoon om iets op te slaan als een Double en vervolgens per ongeluk te proberen het op te halen als een Integer of een Long. Dus, kunt u controleren of de declaratie van navigationId in de afhankelijke module dezelfde is als degene die u hier hebt getoond? Ze zouden de definitie moeten delen, maar het is mogelijk dat er een alternatief is.

Een ander ding om te controleren is dat uw code een Long in uwDBObject plaatst en niet een float. Als u het bijvoorbeeld via de shell invoert, moet u een van de wrappers gebruiken, bijvoorbeeld

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

Anders zal dit ook een mismatch veroorzaken wanneer u het ophaalt; standaardnummers in JavaScript zijn dubbel.




  1. Mongoose .save() retourneert een leeg foutobject, slaat niet op in DB

  2. Verbinding maken met MongoDB Atlas met behulp van Golang mgo:aanhoudend geen bereikbare server naar replicaset

  3. flushdb wist niet alle sleutels in redis?

  4. 'IdentityContext' kon niet worden gevonden (mis je een gebruiksrichtlijn of een assembly-referentie)