sql >> データベース >  >> NoSQL >> MongoDB

ConversionFailedException:DBObjectを永続化するが、取得するとLinkedHashMap が返されます

    あなたのエラーはおそらくあなたの例外でそれが言っていることとまったく同じです:ConversionFailed Exception ArrayListから変換しようとしている誰か/何かによって引き起こされます LinkedHashMapに;しかし、それにふさわしいコンバーターはありません(ConverterNotFoundException )。

    あなたが投稿したコードはごくわずかなので、正確にこれが起こっている場所を言うことは不可能です。コードに文字列「myString」が見つかりませんが、エラーに記載されています。

    春のデータは通常、マッピングプロセスでコンバーターを使用します。マッピングプロセスをより細かく制御するために、クラスのカスタムコンバーターを実装して登録することを好む人もいます。

    ここでコンバーターについて読むことができます

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

    そしてここ

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

    たぶん、これはあなたが自分でエラーを修正するのにすでに十分でしょう。

    編集:この行についての短いコメント:

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

    セッターはDBObjectを取得するため、セッターを呼び出す前にDBObjectにキャストします。これは悪いことです。JSON用に別のセッターを作成してそこでキャストする必要があります。そうしないと、コード内のあらゆる場所でそのキャスト操作を実行することになります。それはあまり乾燥していません。

    SpringデータにはDBRefと呼ばれるものもあります。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. 埋め込まれたDBObjectよりもこれを好むかもしれません。




    1. Monkを使用したMongodb:dbがダウンしている場合のエラーのキャッチと処理

    2. F#複数の属性CLIMutable DataContract

    3. mongodbで集計中にフィールドを条件付きで投影する方法

    4. Mongodb 4+ findOneAndUpdate()returnNewDocumentが機能しない