seu erro provavelmente é exatamente o que diz em sua exceção:uma
ConversionFailed Exception
causado por alguém/algo tentando converter de ArrayList
para um LinkedHashMap
; mas não há conversor adequado para isso (ConverterNotFoundException
). onde exatamente isso está acontecendo é impossível dizer, pois você postou apenas muito pouco código. não consigo encontrar a String "myString" no seu código, mas ela é mencionada no erro.
spring data geralmente usa conversores em seu processo de mapeamento. para ter mais controle sobre o processo de mapeamento, algumas pessoas preferem implementar e registrar um conversor personalizado para suas classes.
você pode ler sobre conversores aqui
http://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/mongo.core.html#mongo.custom-converters
e aqui
http://docs .spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert
talvez isso já seja suficiente para você corrigir o erro sozinho.
Edit:um pequeno comentário sobre esta linha:
potentialCandidatesObj.setPotentialcandidates((DBObject)JSON.parse(valStr));
você está lançando para DBObject antes de chamar o setter, porque o setter recebe um DBObject. isso é ruim, você deve criar outro setter para JSON e fazer a conversão lá, ou você acabará fazendo essa operação de conversão em todo o seu código; isso não é muito SECO.
há também algo chamado DBRefs em dados de primavera:
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.
você pode preferir isso em vez de um DBObject incorporado.