MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

ConversionFailedException:Utrzymywanie DBObject, ale pobieranie zwraca LinkedHashMap

twój błąd jest prawdopodobnie dokładnie tym, co mówi w twoim wyjątku:ConversionFailed Exception spowodowane przez kogoś/coś, kto próbuje dokonać konwersji z ArrayList do LinkedHashMap; ale po prostu nie ma odpowiedniego konwertera (ConverterNotFoundException ).

gdzie dokładnie to się dzieje, trudno powiedzieć, ponieważ zamieściłeś tylko bardzo mało kodu. nie mogę znaleźć ciągu „myString” w twoim kodzie, ale jest on wymieniony w błędzie.

Spring data zwykle używa konwerterów w procesie mapowania. aby mieć większą kontrolę nad procesem mapowania, niektórzy wolą zaimplementować i zarejestrować niestandardowy konwerter dla swoich klas.

o konwerterach możesz przeczytać tutaj

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

i tutaj

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

może to już wystarczy, abyś sam naprawił błąd.

Edycja:krótki komentarz na temat tej linii:

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

rzutujesz na DBObject przed wywołaniem settera, ponieważ setter przyjmuje DBObject. to jest złe, powinieneś utworzyć inny setter dla JSON i tam wykonać rzutowanie, w przeciwnym razie wykonasz tę operację rzutowania wszędzie w swoim kodzie; to nie jest bardzo SUCHE.

istnieje również coś, co nazywa się DBRefs w spring data: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. możesz preferować to od osadzonego DBObject.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. java mongo db wyrażenie regularne nieliterowe

  2. Grupuj MongoDB według wartości w polu tablicy

  3. MongoDB elemMatch nie działa oczekiwano

  4. Mongodb Czytaj preferencje

  5. Jaka jest różnica między $near i $nearSphere w Mongo?