sql >> Database >  >> NoSQL >> MongoDB

ConversionFailedException:een DBObject aanhouden maar ophalen geeft een LinkedHashMap als resultaat

uw fout is waarschijnlijk precies wat er in uw uitzondering staat:een ConversionFailed Exception veroorzaakt door iemand/iets dat probeert te converteren van ArrayList naar een LinkedHashMap; maar daar is gewoon geen passende converter voor (ConverterNotFoundException ).

waar dit precies gebeurt, is onmogelijk te zeggen omdat je maar heel weinig code hebt gepost. ik kan de String "myString" niet vinden in uw code, maar het wordt vermeld in de fout.

lentegegevens gebruiken meestal converters in het mappingproces. om meer controle te hebben over het mappingproces, geven sommige mensen er de voorkeur aan een aangepaste converter voor hun klassen te implementeren en te registreren.

je kunt hier lezen over converters

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

en hier

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

misschien is dit al voldoende om de fout zelf op te lossen.

Edit:een korte opmerking over deze regel:

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

u cast naar DBObject voordat u de setter aanroept, omdat de setter een DBObject neemt. dit is slecht, je moet een andere setter voor JSON maken en daar de casting doen, anders zul je die casting-bewerking overal in je code doen; dat is niet erg DROOG.

er is ook iets dat DBref's wordt genoemd in springgegevens: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. u kunt dit verkiezen boven een ingesloten DBObject.




  1. mongodb krijgt het laatst ingevoegde document

  2. Hoe kan ik redis-server stoppen?

  3. Hoe som in MongoDB optellen om een ​​totaal aantal te krijgen?

  4. mongodb join-achtige query met twee collecties en een where-clausule