MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

findAll fallisce dopo la reinizializzazione di play morphia

Il modulo dipendente ha un'altra dichiarazione alternativa delle classi Page o Model?

Dalla parte superiore della traccia dello stack, ("com.google.code.morphia.mapping.MappingException:errore di impostazione del valore dal convertitore (LongConverter) per models.Page.navigationId a 20000"), sembra che ci sia una mancata corrispondenza di tipo tra il modo viene memorizzato e recuperato un valore numerico. Ad esempio, in Java, non è raro memorizzare qualcosa come Double e quindi provare erroneamente a recuperarlo come Intero o Long. Quindi, puoi verificare che la dichiarazione di navigationId nel modulo dipendente sia la stessa che hai mostrato qui? Dovrebbero condividere la definizione, ma è possibile che ci sia un'alternativa.

Un'altra cosa da controllare è che il tuo codice stia inserendo un Long nel tuoDBObject e non un float. Ad esempio, se lo stai inserendo tramite la shell, dovrai utilizzare uno dei wrapper, ad es.

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

In caso contrario, ciò causerà anche una mancata corrispondenza quando lo recuperi; per impostazione predefinita, i numeri in JavaScript sono doppi.