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

ConversionFailedException:Vedvarende et DBO-objekt, men hentning returnerer et LinkedHashMap

din fejl er sandsynligvis præcis, hvad der står i din undtagelse:en ConversionFailed Exception forårsaget af nogen/noget, der forsøger at konvertere fra ArrayList til et LinkedHashMap; men der er bare ingen passende konverter til det (ConverterNotFoundException ).

hvor præcist dette sker, er umuligt at sige, da du kun postede meget lidt kode. Jeg kan ikke finde strengen "myString" i din kode, men den er dog nævnt i fejlen.

spring data bruger normalt konvertere i sin kortlægningsproces. For at have mere kontrol over kortlægningsprocessen foretrækker nogle mennesker at implementere og registrere en tilpasset konverter til deres klasser.

du kan læse om konvertere her

http://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/mongo.core.html#mongo.custom-converters

og her

http://docs .spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert

måske vil dette allerede være nok til, at du selv kan rette fejlen.

Edit:en kort kommentar om denne linje:

potentialCandidatesObj.setPotentialcandidates((DBObject)JSON.parse(valStr));

du caster til DBObject, før du kalder sætteren, fordi sætteren tager et DBObject. dette er dårligt, du bør oprette en anden sætter til JSON og lave castingen der, ellers ender du med at udføre den casting overalt i din kode; det er ikke særlig TØRT.

der er også noget, der hedder DBRefs i springdata:The mapping framework doesn't have to store child objects embedded within the document. You can also store them separately and use a DBRef to refer to that document. When the object is loaded from MongoDB, those references will be eagerly resolved and you will get back a mapped object that looks the same as if it had been stored embedded within your master document. du foretrækker måske dette frem for et indlejret DBO-objekt.




  1. Sådan returneres underdokumenter fra et objekt i et array med Meteor og MongoDB

  2. Forespørgsel, hvor summen af ​​to felter er mindre end den angivne værdi

  3. Test af REST api bygget ved hjælp af Node.js(Express) på Travis CI

  4. Bull kø:Når et job fejler, hvordan stopper man køen i at behandle resterende job?