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
i tutaj
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.