sql >> Databáze >  >> NoSQL >> MongoDB

ConversionFailedException:Přetrvání objektu DBObject, ale načtení vrátí LinkedHashMap

vaše chyba je pravděpodobně přesně to, co je uvedeno ve vaší výjimce:ConversionFailed Exception způsobené tím, že se někdo/něco pokouší převést z ArrayList na LinkedHashMap; ale na to prostě neexistuje žádný vhodný převodník (ConverterNotFoundException ).

kde přesně se to děje, nelze říci, protože jste odeslali jen velmi málo kódu. Nemohu najít řetězec "myString" ve vašem kódu, přesto je uveden v chybě.

jarní data obvykle používají převodníky v procesu mapování. někteří lidé dávají přednost implementaci a registraci vlastního převodníku pro své třídy, aby měli větší kontrolu nad procesem mapování.

o převodnících si můžete přečíst zde

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

a zde

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

možná už to bude stačit na to, abyste chybu sami opravili.

Edit:krátký komentář k tomuto řádku:

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

přetypujete do DBObject před voláním setteru, protože setter bere objekt DBObject. to je špatné, měli byste vytvořit další setter pro JSON a provést přetypování tam, nebo skončíte tak, že budete dělat přetypování všude ve vašem kódu; to není moc SUCHÉ.

v jarních datech je také něco, co se nazývá DBRefs: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. můžete tomu dát přednost před vloženým objektem DBObject.




  1. apollostack/graphql-server - jak získat pole požadovaná v dotazu z resolveru

  2. Jak filtrovat prvky pole

  3. Jak použít $arrayElemAt a odstranit pole z tohoto prvku v MongoDB $projection?

  4. MongoError:ovladač není kompatibilní s touto verzí serveru