2016-12-29 34 views
2

我在彈簧XML構成的蒙哥映射轉換器如下:蒙戈映射轉換器不被調用

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

我已經從其中type「錄製」的字段是一個蒙戈集合將被讀取並轉換成我的自定義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

在上下文中:組件掃描我已經包含了轉換器類的包。 – 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中的base-package。 – OnePlus

+0

上述解決方案有效。謝謝! – OnePlus