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.