2016-12-29 3 views
2

呼び出されていない次のように私はばねXMLで構成Mongoのマッピング変換を有する:Mongoのマッピングコンバータは

<mongo:mapping-converter> 
    <mongo:custom-converters> 
     <mongo:converter> 
      <bean class="com.pqbook.marc.mongo.converters.MarcRecordMongoReaderConverter" /> 
     </mongo:converter> 
    </mongo:custom-converters> 
</mongo:mapping-converter> 

Iタイプ「レコード」のフィールドが読み出され、に変換される場所からMongoのコレクションを持っています私のカスタムPOJOタイプは 'MyRecord'です。 私のコンバータクラスは次のようになります。

@Component 
public class MarcRecordMongoReaderConverter implements Converter<Record, MyRecord> { 

@Override 
public MyRecord convert(Record source) { 
    // the conversion code 
    // this method returns an object of type 'MyRecord' 
} 

}

私は別の方法でこのコンバータを登録する必要がありますか?どの時点でこのコンバータが呼び出されますか?欠落しているものはありますか?

+0

スプリングコンポーネントのスキャンはどのように設定されていますか? – Veeram

+0

コンテキスト内:component-scanコンバータークラスのパッケージが含まれています。 – OnePlus

答えて

0

設定はこれと似ています。コンバータをmongoテンプレートに登録する必要があります。

<mongo:mongo host="127.0.0.1" port="27017" /> 
    <mongo:db-factory dbname="test" /> 

    <mongo:mapping-converter id="mappingConverter" base-package="com.pqbook.marc.mongo"> 
     <mongo:custom-converters> 
      <mongo:converter> 
       <bean class="com.pqbook.marc.mongo.converters.MarcRecordMongoReaderConverter" /> 
      </mongo:converter> 
     </mongo:custom-converters> 
    </mongo:mapping-converter> 

    <bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> 
     <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /> 
     <constructor-arg name="mongoConverter" ref="mappingConverter"/> 
    </bean> 
+0

私は以前のmongo:mapping-converterのベースパッケージを持っていませんでした。 – OnePlus

+0

上記の解決策が機能します。ありがとう! – OnePlus